为了让geocode记录下经纬度。您需要将纬度和经度字段添加到您的数据库表。假设您使用users 表。
首先添加迁移
rails generate migration AddLatitudeLongitudeToUsers
修改迁移如下
class AddLatitudeLongitudeToUsers < ActiveRecord::Migration
def change
add_column :users, :latitude, :float
add_column :users, :longitude, :float
end
end
运行 rake db:migrate 以保存更改。
将以下地理编码设置添加到用户模型
class User < ActiveRecord::Base
geocoded_by :current_sign_in_ip
after_validation :geocode, if: :current_sign_in_ip_changed?
end
由于我们大多数人在本地机器上测试和开发应用程序,在您登录后 current_sign_in_ip 将记录为“127.0.0.1”。
您可以从 Rails 控制台rails c 验证它
u = User.find_by_email("your_login@email.com")
u.current_sign_in_ip
u.latitude
u.longitude
要查看地理编码器是否工作,让我们手动更改 ip
u.current_sign_in_ip = "199.182.122.98"
u.save
u.latitude
u.longitude
登录后,请确保 current_sign_in_ip 字段有 ip 记录。否则,纬度和经度字段将为nil。