Friendly_id不会为旧记录创建 slug



我刚刚将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)但它一直吐出零结果。我尝试完全注释掉should_generate_new_friendly_id但没有运气。有人看到我在这里做错了什么吗?

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

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

没有"做和结束"块:

find_each返回一个枚举(不是活动记录类)

用:

Model.find_each.选择(&:保存)

注意添加的"选择"方法

用 Rails 的find_each做事

最新更新