Исходя из ваших требований, я бы сказал, что вам на самом деле не нужен ajax, так как большая часть обработки будет выполняться с использованием JS (чтобы запросить у пользователя доступ к его местоположению, проанализировать ответ и т. Д.), Я бы используйте JS для установки файла cookie, который затем увидит Rails).
В вашем контроллере
def action
@lat_lng = cookies[:lat_lng].split("|")
end
По вашему мнению
<%- unless @lat_lng %>
<script>
getGeoLocation();
</script>
<%- end %>
В одном из ваших файлов JavaScript
function getGeoLocation() {
navigator.geolocation.getCurrentPosition(setGeoCookie);
}
function setGeoCookie(position) {
var cookie_val = position.coords.latitude + "|" + position.coords.longitude;
document.cookie = "lat_lng=" + escape(cookie_val);
}
Обратите внимание, что ни один из вышеперечисленных тестов не позволяет определить, есть ли у пользователя браузер, поддерживающий геолокацию, или предоставил ли пользователь (или отказал) разрешение на использование своего местоположения, и что файл cookie будет файлом cookie сеанса, и что JS не проверяет, установлен ли файл cookie. Чтобы установить более сложную информацию о куки, посмотрите на http://www.quirksmode.org/js/cookies.html Для получения дополнительной информации о геолокации с использованием javascript см. http://diveintohtml5.info/geolocation.html