Rails通过方法更新所有记录

时间:2014-08-30 12:49:25

标签: ruby-on-rails model-view-controller geocoding

我用两个属性更新了我的事件模型:latitude:float,longitude:float。 我已经为每个条目记录了地址属性,我正在使用“地理编码器”gem(http://rubydoc.info/gems/geocoder/)从地址中检索(lat,long)。

模型非常简单:

class Event < ActiveRecord::Base
  geocoded_by :location   # can also be an IP address
  after_validation :geocode
end

当我从控制器调用“创建”动作时,这很有效。

我想要做的是更新所有现有事件记录的纬度和经度属性。

我知道“update_all”方法,但它的工作方式不允许我使用像地理编码器这样的方法。

欢迎任何帮助。

谢谢

1 个答案:

答案 0 :(得分:1)

我不知道地理编码器是否正常工作,但您可以执行以下操作:

$ rails c
Event.find_each(&:save)

这将循环显示您现有的所有活动&amp;保存它们,我相信它会被地理编码器宝石拿起来供你更新