ruby-on-rails – friendly_id不会为旧记录生成slu ..
发布时间:2020-12-16 23:03:57 所属栏目:百科 来源:网络整理
导读:我使用了带有Rails应用程序的FriendlyId gem(版本4.0.8).我已经按照 RailsCasts的教程进行操作,根据文档,我必须在rails控制台上运行Model.find_each(:save)来为旧记录生成slugs.但是,当我这样做时,我的所有旧记录的slug属性仍然没有,所以它并没有真正改变ur
我使用了带有Rails应用程序的FriendlyId gem(版本4.0.8).我已经按照
RailsCasts的教程进行操作,根据文档,我必须在rails控制台上运行Model.find_each(&:save)来为旧记录生成slugs.但是,当我这样做时,我的所有旧记录的slug属性仍然没有,所以它并没有真正改变url的.
难道我做错了什么?这只发生在生产方式上.它在开发上运行良好. 更新: 我的模型看起来像这样: class Member < ActiveRecord::Base extend FriendlyId friendly_id :name,use: :slugged belongs_to :gym attr_accessible :category,:name,:description validates :category,: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 解决方法
should_generate_new_friendly_id?因为new_record会返回false吗?是错误的,因为你的记录已经存在.
删除should_generate_new_friendly_id?方法,或试试这个&重新运行: def should_generate_new_friendly_id? new_record? || slug.blank? end 另见:Rails Friendly_Id on Heroku,Heroku not updating slugs (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |