尝试让我的应用运行FriendlyId gem (version 4.0.1)
我想我是以错误的顺序执行此操作,但我想在创建新记录时在我的friendly_id slug is generated之前删除撇号。但是我认为在生成id之后会调用 normalize_friend_id 方法。
我已将以下内容添加到我的模型中:
class Team < ActiveRecord::Base
extend FriendlyId
friendly_id :name, :use => :slugged
def normalize_friendly_id(string)
super.gsub("\'", "")
end
end
答案 0 :(得分:10)
super
首先调用超类,这意味着正在生成友好ID,然后你在这个结果上运行gsub。你真正想要的是完全覆盖这个方法。
请参阅:https://github.com/norman/friendly_id/blob/master/lib/friendly_id/slugged.rb#L244-246
您的代码应如下所示:
def normalize_friendly_id(string)
string.to_s.gsub("\'", "").parameterize
end
或
def normalize_friendly_id(string)
super(string.to_s.gsub("\'", ""))
end
希望有所帮助