У меня есть модель, предложения, и я пытаюсь получить ip-адрес от пользователя и геокодировать координаты по широте и долготе. Документация камень указывает на то, что, где, как известно адрес IP код должен быть:Проблемы с Ruby Geocoder gem in Rails
Модель:
geocoded_by :ip_address, :latitude => :latitude, :longitude => :longitude
Однако у меня нет адреса IP-сохранены изначально, поэтому я изменил его к этому:
if :current_location
self.ip_address = request.ip
geocoded_by :ip_address, :latitude => :latitude, :longitude => :longitude
end
request.ip
- это метод из ActionView, который, как я считаю, не может быть вызван из модели. Я проверил это как вспомогательный метод, и он возвращает локальный адрес хоста. Но когда я пытаюсь сохранить его в этом формате, он ничего не сохраняет для модели.
Каков наилучший способ сохранить ip_address в модели, чтобы его можно было использовать в этом формате? Должен ли он быть извлечен для вспомогательного метода? Есть ли способ для include
или require
правильный модуль в модели?
Для справки руководство камня находится здесь: http://www.rubygeocoder.com
Все оцененная помощь, спасибо.
Спасибо, но я неохотно воссоздаю модель на этом этапе, так как теперь она немного сложна в дополнение к функциям геокодирования. Есть ли какие-либо другие драгоценные камни или простые способы получить IP-адрес пользователя и сохранить его в модели, которую вы использовали? Я собираюсь попробовать Geokit-рельсы и посмотреть, работает ли это лучше. – user2514224