ruby-on-rails - Rails FriendlyId和normalize_friendly_id

标签 ruby-on-rails friendly-id

试图让我的应用程序运行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

最佳答案

super首先调用父类(super class),这意味着将生成友好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

希望能有所帮助

关于ruby-on-rails - Rails FriendlyId和normalize_friendly_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10776706/

相关文章:

ruby-on-rails - FactoryGirl "create_list"未保存到数据库

ruby-on-rails - 将 Rails 应用程序部署到非 root 上下文 - restful_auth 不起作用

ruby-on-rails - rails : Friendly_id does not generate slugs for old records

ruby-on-rails - 友好ID-未定义的 `slug='方法

ruby-on-rails - 带有智能重定向的 StackOverflow 风格路由

ruby-on-rails - 我在 ajax 返回时收到 406 错误

ruby-on-rails - 有没有办法向 Rails 脚手架生成器添加规范/功能

ruby-on-rails - Rails + Postgres 迁移 - 为什么我收到错误 "PG::UndefinedFunction: ERROR: function gen_random_uuid() does not exist"?

ruby-on-rails-4 - 名称错误 : uninitialized constant with FriendlyId after migration to Rails4

ruby-on-rails - Friendly_id 生成带有 ID 的 slug