【问题标题】:Rails FriendlyId and normalize_friendly_idRails FriendlyId 和 normalize_friendly_id
【发布时间】:2012-06-02 08:26:48
【问题描述】:

试图让我的应用运行FriendlyId gem (version 4.0.1)

我认为我这样做的顺序错误,但我想在创建新记录时去掉我的friendly_id slug is generated 之前的撇号。但是我认为 normalize_friend_id 方法是在 id 已经生成之后被调用的。

我已将以下内容添加到我的模型中:

class Team < ActiveRecord::Base
  extend FriendlyId
  friendly_id :name, :use => :slugged

  def normalize_friendly_id(string)
    super.gsub("\'", "")
  end

end

【问题讨论】:

    标签: ruby-on-rails friendly-id


    【解决方案1】:

    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
    

    希望有帮助

    【讨论】:

      猜你喜欢
      • 2011-10-15
      • 2016-09-26
      • 1970-01-01
      • 2016-03-24
      • 1970-01-01
      • 2013-03-06
      • 2018-04-09
      • 2016-08-17
      • 2012-12-23
      相关资源
      最近更新 更多