undefined方法`find_by_friendly_id',带有FriendlyId gem和Rails 5.1

时间:2017-11-11 21:52:17

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.2 friendly-id

我想阻止用id选择用户,这就是为什么我使用的方法应该以这种方式工作,但我得到了这个错误:

  

未定义的方法`find_by_friendly_id'...

这是用户模型:

include FriendlyId
friendly_id :name, :use => [:slugged, :finders]

和控制器:

def show
    @user= User.find_by_friendly_id(params[:slug])
end

表格中有slug列。

我正在使用宝石的最新版本 - 5.1.0

1 个答案:

答案 0 :(得分:0)

不要忘记生成数据库slug

#rails generate friendly_id
#rake db:migrate

.MODEL

extend FriendlyId
friendly_id :permalink, use: [:slugged, :history, :finders]

.controller

@post = Post.find(params[:id])

更新:

我个人使用永久链接作为刺痛专栏。

validates_presence_of :permalink
validates_uniqueness_of :permalink, case_sensitive: false
validates :permalink, presence: true, uniqueness: true, :length => {minimum: 4}

def should_generate_new_friendly_id?
    permalink_changed?
end