Friendly_id没有为旧记录创建slug

时间:2012-10-09 20:38:25

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

我刚刚在我的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,但没有运气。有谁看到我在这里做错了什么?

修改
我回滚了我的数据库并重写了我的迁移,这似乎解决了这个问题。

1 个答案:

答案 0 :(得分:0)

如果有人发现这个已有6年历史的问题:

没有“执行结束”框:

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

使用:

  

Model.find_each.select(&:save)

请注意添加的“选择”方法

Doing stuff with Rails’ find_each