我刚刚在我的rails项目中添加了Friendly_id gem,希望不使用数据库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
,但没有运气。有谁看到我在这里做错了什么?
修改
我回滚了我的数据库并重写了我的迁移,这似乎解决了这个问题。
答案 0 :(得分:0)
如果有人发现这个已有6年历史的问题:
没有“执行结束”框:
find_each返回一个Enumerable(不是ActiveRecord类)
使用:
Model.find_each.select(&:save)
请注意添加的“选择”方法