【问题标题】:Rails update all records through methodRails 通过方法更新所有记录
【发布时间】:2014-08-30 12:49:24
【问题描述】:

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

模型很简单:

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

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

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

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

欢迎任何帮助。

谢谢

【问题讨论】:

  • 你是如何获取数据的?

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


【解决方案1】:

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

$ rails c
Event.find_each(&:save)

这将循环浏览您所有现有的事件并保存它们,我相信地理编码器 gem 会拾取这些事件供您更新

【讨论】:

  • 我认为 set_lat_long 没有必要。这是由:geocode 自动完成的。 before_update 也不是必需的,因为他已经拥有after_validation。所以他的模型可以保持不变。他所要做的就是运行Event.find_each(&amp;:save)
  • 我很抱歉 - 我会删除
  • 非常感谢,这个命令对我很有用。完美
猜你喜欢
  • 2015-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 2020-05-04
  • 2017-04-27
相关资源
最近更新 更多