我在 Rails 应用程序中使用了 FriendlyId gem(版本 4.0.8)。我已经按照RailsCasts上的教程进行操作,并且根据文档,我必须Model.find_each(&:save)
在 rails 控制台上运行才能为旧记录生成 slug。但是,当我这样做时,我所有的旧记录的 slug 属性仍然为零,所以它并没有真正改变 url。
难道我做错了什么?顺便说一句,这只发生在生产中。它在开发中运行良好。
更新:
我的模型如下所示:
class Member < ActiveRecord::Base
extend FriendlyId
friendly_id :name, use: :slugged
belongs_to :gym
attr_accessible :category, :name, :description
validates :category, :name, :description, :presence => true
has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }
def self.search(search)
if search.present?
where("name LIKE ?", "%#{search}%")
else
find(:all)
end
end
def should_generate_new_friendly_id?
new_record?
end
end