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]
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.