7

我刚刚将 Friendly_id gem 添加到我的 rails 项目中,希望不使用数据库 ID 并创建一个 slug,但我似乎无法为旧记录创建 slug。我的模型看起来像这样。

class Mapping < ActiveRecord::Base

  extend FriendlyId
  friendly_id :title, use: :slugged

  # Friendly_Id code to only update the url for new records
  def should_generate_new_friendly_id?
    new_record? || slug.blank?
  end

end

然后我正在跑步Model.find_each(&:save),但它一直吐出 nil 结果。我试过完全注释掉,should_generate_new_friendly_id但没有运气。有人看到我在这里做错了吗?

编辑
我回滚了我的数据库并重写了我的迁移,这似乎已经解决了这个问题。

4

1 回答 1

2

如果有人发现这个 6 岁的问题:

没有“做和结束”块:

find_each 返回一个 Enumerable(不是 ActiveRecord 类)

利用:

Model.find_each.select(&:save)

注意添加的“选择”方法

用 Rails 的 find_each 做事

于 2019-07-31T15:44:00.047 回答