2015-01-28 2 views
3

Я пытаюсь захватить местоположение пользователя через HTML5 и передать его моему контроллеру rails.HTML5 Geolocation In Rails

У меня есть приведенный ниже JavaScript, который вызывает значение на элементе и устанавливает его равным соответствующей позиции. Затем я хотел бы представить эти значения через скрытое поле формы и передать его моему контроллеру местоположения, чтобы я мог заполнять местоположения в зависимости от положения пользователей. Я знаю, что это было сделано раньше, и я видел несколько сообщений об этом, но у меня не было успеха.

В настоящее время я получаю ошибку, которую вы видите на этом экране ниже. Я думаю, что моей форме может понадобиться какая-то работа, плюс мне нужно добавить код в мой контроллер, чтобы захватить значения. Как вы можете видеть, немного потерянный, любой совет будет замечательным.

Error Message

+0

хорошо, кажется, ваш PARAMS (лат и долгота) посылаются правильно , что вы хотите сделать дальше, вы точно не опубликовали сообщение об ошибке. –

+0

Правильно, извините. «Параметр отсутствует или значение пустое: местоположение» - это сообщение об ошибке. В идеале я хотел бы передать их моему контроллеру, чтобы я мог визуализировать их, на мой взгляд, настроить фильтр на основе их местоположения. У меня есть сейчас работа с драгоценным камнем геокодера, но он не является точным с использованием ip-адреса. –

+0

так что местоположение - это модель в вашей системе? и какой камень вы используете? –

ответ

0

Как я вас понимаю, вы хотели бы показать местоположение на основе позиции пользователей. Это означает, что вы нашли пользователя, как вы это делали, напишите lat и lon в hidden_form_field s и отправьте эту форму с помощью ajax в действие index (!) Вашего locations_controller (а не действие для создания).

С геокодером контроллер выглядит примерно так:

@locations = Location.near([params[:lat], params[:lon]]) 
. 
. 
. 
respond_to do |format| 
format.html {} 
format.js {} 
end 

Затем нужно только вставить ваш новый @locations в ваш индексном

+0

Спасибо @Tom , Мне не нужно было использовать ajax, просто нужно было создать маршрут, чтобы форма отправляла почтовый запрос на действие индекса, а не действие create. Оттуда я использовал параметры, которые вы предложили в моем действии индекса, и он работает отлично. 'match" locations "=>" locations # index ",: via => [: post]' это то, что было необходимо. –

Смежные вопросы