【发布时间】:2014-08-20 04:03:35
【问题描述】:
我有 Locations 模型 - 国家/地区/城市总共有 50k 多条记录。我已经为这些模型添加了配置。
有没有办法通过命令行我可以一次性为这些模型创建 slug,而不是编辑和保存所有模型。
【问题讨论】:
-
为什么会有人反对它?如果他们有答案,请分享:/
标签: ruby-on-rails ruby-on-rails-4 friendly-id
我有 Locations 模型 - 国家/地区/城市总共有 50k 多条记录。我已经为这些模型添加了配置。
有没有办法通过命令行我可以一次性为这些模型创建 slug,而不是编辑和保存所有模型。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 friendly-id
friendly_id 在保存时更新 slug。我为我的项目这样做了,但这只包含大约 5k 项,所以这可行,但可能需要一些时间,具体取决于您的设置。
Model.all.map(&:save)
【讨论】:
rails c
Model.first.save!,用! 你会得到一个例外,也许它会让你更接近解决方案。您的设置中一定缺少某些东西。
保存
为了进一步帮助您 - @iceman 是对的 - 您需要遍历您的 slugged 模型并再次保存它们。 friendly_id recommends this 通过在 rails console 中进行操作:
$ rails c
$ Location.find_each(&:save)
这应该有助于 Rails 加载每个项目,然后立即保存它们。这将触发friendly_id 的slug 生成功能,填充Location 记录的slug 列
【讨论】: