Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails地理编码器AlexerReisner自动添加用户位置_Ruby On Rails_Geolocation_Rails Geocoder - Fatal编程技术网

Ruby on rails rails地理编码器AlexerReisner自动添加用户位置

Ruby on rails rails地理编码器AlexerReisner自动添加用户位置,ruby-on-rails,geolocation,rails-geocoder,Ruby On Rails,Geolocation,Rails Geocoder,嗨,我目前正在使用Alexereisner geocoder,我需要调整它,以便用户不必在表单中添加地址、纬度和经度,但当他们提交表单时,它将自动填充,他们不必添加地址、纬度和经度 是否可以自动执行此操作?是否安全?如何做到这一点 这是我目前拥有并正在使用的数据库 create_table "quests", force: :cascade do |t| t.float "latitude" t.float "longitude" t.string "ad

嗨,我目前正在使用Alexereisner geocoder,我需要调整它,以便用户不必在表单中添加地址、纬度和经度,但当他们提交表单时,它将自动填充,他们不必添加地址、纬度和经度

是否可以自动执行此操作?是否安全?如何做到这一点

这是我目前拥有并正在使用的数据库

create_table "quests", force: :cascade do |t|
    t.float    "latitude"
    t.float    "longitude"
    t.string   "address"
    t.string   "name"
    t.datetime "created_at",  null: false
    t.datetime "updated_at",  null: false
end

任何帮助都将不胜感激

您将在以下内容中找到答案:

您只需将此添加到您的模型中

geocoded_by :address              # can also be an IP address
after_validation :geocode         # auto-fetch coordinates

希望有帮助

如果将rails应用程序用于Web应用程序,则需要从用户浏览器获取坐标。您可以使用javascript实现这一点

navigator.geolocation.getCurrentPosition(setPositionByBrowserCoordinates) if navigator.geolocation
在回调函数内部(此处
setPositionByBrowserCoordinates
),您可以使用获取的坐标设置例如隐藏字段。它们将在提交时发送到您的服务器,然后您可以保存它们

这一切都是自动为用户工作的。用户需要做的唯一一件事就是允许您访问该位置

Mozilla文档: