Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.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 地理编码器-对控制器中的数据进行地理编码_Ruby On Rails_Google Maps_Rails Geocoder - Fatal编程技术网

Ruby on rails 地理编码器-对控制器中的数据进行地理编码

Ruby on rails 地理编码器-对控制器中的数据进行地理编码,ruby-on-rails,google-maps,rails-geocoder,Ruby On Rails,Google Maps,Rails Geocoder,我正在使用地理编码器gem,我想对位置(城市、州)进行地理编码,并在控制器中获取lat lng 我正在这样做,并得到以下错误 <%= @geo = Geocoder.coordinates("Los Angeles").inspect %> <%= puts @geo.join(",") %> 错误: “[46.7225341,8.9635602]”的未定义方法“join”:字符串 我想将lat和lng作为逗号分隔的字符串保存在数据库中。我想您不想在这里使用insp

我正在使用地理编码器gem,我想对位置(城市、州)进行地理编码,并在控制器中获取lat lng

我正在这样做,并得到以下错误

<%= @geo = Geocoder.coordinates("Los Angeles").inspect %>
<%= puts @geo.join(",") %>

错误: “[46.7225341,8.9635602]”的未定义方法“join”:字符串


我想将lat和lng作为逗号分隔的字符串保存在数据库中。

我想您不想在这里使用inspect。它可能将其强制转换为一个没有连接方法的字符串。通常,地理编码是在模型上使用before_save回调进行的,而不是在控制器中进行的。

您可以在验证后使用
轻松地对模型中的地址进行地理编码

就这样

      # app/models/venue.rb
        geocoded_by :address
        after_validation :geocode

通过这种方式,您可以将纬度和经度属性保存到相应的模型。

我发现它也对错误的值进行了地理编码。你知道怎么处理吗it@HarshaMV这取决于地理编码API,默认情况下它使用谷歌地图API。您可以配置它们
config/initializers/geocoder.rb
文件。如果没有配置文件,请使用
rails-generate-geocoder:config