Ben,

Thank you. It makes total sense. Unfortunately, I am obviously missing the 
correct syntax for doing this. I've tried a lot of different ways, but no 
luck so far. I'll keep trying.

Ephraim

On Friday, February 28, 2014 12:38:28 PM UTC-8, Benjamin Wanicur wrote:
>
> Hi Ephraim
>
> You are issuing an AJAX call to your UsersController.  This cannot 
> redirect the page directly.  You could (I would not recommend this) have a 
> success callback in your jQuery method that uses the window.location = 
> "/some_url_here" and that would redirect your browser.  
>
> Perhaps a better approach (if you want the page to redirect) is create a 
> form with a few hidden form fields (for your geolocation data).  The submit 
> button on the form could trigger your JS function and then submit (not AJAX 
> call) to your UsersController#set_geolocation method.  This would be a 
> plain-old HTTP request (POST request) and it will follow the Rails 
> redirect_to method.
>
> Cheers
>
> Ben W
>
>
> On Fri, Feb 28, 2014 at 11:47 AM, Ephraim Feig 
> <[email protected]<javascript:>
> > wrote:
>
>> 0 down vote 
>> favorite<http://stackoverflow.com/questions/22102460/page-does-not-update-after-navigator-geolocation-call-in-rails-check-in-check#>
>>  
>>   
>> I am using standard HTML5 location services. A user comes into a cafe, 
>> opens the app, clicks on "Check-in!" and the app gets the location and uses 
>> it until the user later clicks "Check-out!". 
>>
>> In my viewer, I call on a script containing navigator.geolocation and it 
>> does its job. I successfully pass the latitude and longitude parameters to 
>> my controller and it updates everything. But when all is done and I 
>> redirect_to root_url, the new page does not refresh (I know at some point I 
>> should do it more elegantly and just update the link part, but for now, I 
>> just want to get this going and understand what is going on). Here is my 
>> code:
>>
>> In my viewer-
>>
>>  <% if (@voterinfo.checkin == 0) %>
>>               <li>
>>                 <h4>    <%= link_to "-->Check-In!", "#", :id => 'findMe' %>  
>>     </h4>
>>                 <script>
>>                   $(function(){
>>                      $("a#findMe").click(function(){
>>                          if (navigator.geolocation) {
>>                              
>> navigator.geolocation.getCurrentPosition(function (position) {
>>                                  $.post('/users/set_geolocation/', 
>> {latitude: position.coords.latitude,
>>                                              longitude: 
>> position.coords.longitude,
>>                                              dataType: 'float'});
>>                              }, function () {
>>                                  alert('We couldn\'t find your position.');
>>                              });
>>                          } else {
>>                              alert('Your browser doesn\'t support 
>> geolocation.');
>>                          }
>>                       });
>>                   })
>>                 </script>
>>                </li>
>>           <% else %>
>>               <li> <h4><%= link_to "--->CHECK-OUT!", :controller => :users,
>>                                    :method => :set_geolocation %></h4></li>
>>           <% end %>
>>         </ul>
>>   <% end %>
>>
>> And here is the relevant part of my users_controller-
>>
>>  def set_geolocation
>>   @user = current_user
>>   @voterinfo = Voterinfo.find_by_user_id(@user.id)
>>   if (@voterinfo.checkin == 0)
>>     @user.update_attributes(:longitude => params['longitude'], :latitude => 
>> params[:latitude])
>>     @user.save(validate: false)
>>     sign_in(@user)
>>     @voterinfo.checkin = 1
>>     @voterinfo.save
>>     redirect_to root_url
>>   else
>>    @voterinfo.checkin = 0
>>    @voterinfo.save
>>    redirect_to root_url
>>   end
>>
>> end
>>
>> Thank you for any help here.
>>
>>
>>  -- 
>> -- 
>> SD Ruby mailing list
>> [email protected] <javascript:>
>> http://groups.google.com/group/sdruby
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "SD Ruby" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>

-- 
-- 
SD Ruby mailing list
[email protected]
http://groups.google.com/group/sdruby
--- 
You received this message because you are subscribed to the Google Groups "SD 
Ruby" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to