我刚刚将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做事