【问题标题】:Friendly_id create slugs for a existing modelFriendly_id 为现有模型创建 slug
【发布时间】:2014-08-20 04:03:35
【问题描述】:

我有 Locations 模型 - 国家/地区/城市总共有 50k 多条记录。我已经为这些模型添加了配置。

有没有办法通过命令行我可以一次性为这些模型创建 slug,而不是编辑和保存所有模型。

【问题讨论】:

  • 为什么会有人反对它?如果他们有答案,请分享:/

标签: ruby-on-rails ruby-on-rails-4 friendly-id


【解决方案1】:

friendly_id 在保存时更新 slug。我为我的项目这样做了,但这只包含大约 5k 项,所以这可行,但可能需要一些时间,具体取决于您的设置。

Model.all.map(&:save)

【讨论】:

  • @HarshaMV 正如你所说的那样通过命令行:) rails c
  • 呵呵 :D 很困惑。什么是第一行和块的其余部分。我需要同时运行吗?
  • 我试过这样做。还在模型pastebin.com/HRpfijAS 中添加了这个,但它仍然没有更新
  • @HarshaMV 试试Model.first.save!,用! 你会得到一个例外,也许它会让你更接近解决方案。您的设置中一定缺少某些东西。
  • 对于“图像”模型,它对我没有任何作用。 slug 永远不会更新现有记录
【解决方案2】:

保存

为了进一步帮助您 - @iceman 是对的 - 您需要遍历您的 slugged 模型并再次保存它们。 friendly_id recommends this 通过在 rails console 中进行操作:

$ rails c
$ Location.find_each(&:save)

这应该有助于 Rails 加载每个项目,然后立即保存它们。这将触发friendly_idslug 生成功能,填充Location 记录的slug

【讨论】:

    猜你喜欢
    • 2012-09-30
    • 2018-08-11
    • 1970-01-01
    • 2012-04-30
    • 2015-10-26
    • 2012-02-28
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多