NameError:迁移到Rails4后,使用FriendlyId的未初始化常量

时间:2014-06-23 07:25:59

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

我刚刚从3.12迁移到Rails4并使用了FriendlyId,它在Rails 3.12中运行良好 我按照我在http://richonrails.com/articles/friendlyid-and-rails-4#.U6fTOY1_v_4

找到的说明进行操作

所以我的gemfile功能:

gem 'friendly_id', '~> 5.0.0'

使用friendly_id 5.0.4

但我不断收到以下错误消息:

NameError: uninitialized constant <Classname>::FriendlyId

对于每个诉诸于FriendlyId的班级

我看到了NameError in SongsController#index uninitialized constant Song::FriendlyId 但就我而言,bundle install不会改变任何东西

4 个答案:

答案 0 :(得分:5)

我在Rails 4中遇到了同样的问题 - 我通过重启spring修复了它:

$ spring stop

我再次运行控制台,然后重新开始工作。

答案 1 :(得分:0)

不完全确定没有看到您的代码,但您需要将extend FriendlyId添加到您的模型中。

class Song < ActiveRecord::Base
  extend FriendlyId
  friendly_id :foo, use [:slugged, :finders]
end

在此示例中,:foo是您希望friendly_id用于创建唯一slug的属性。

答案 2 :(得分:0)

我有同样的问题,在我的情况下,我忘记了这一步:

# Change User.find to User.friendly.find in your controller
User.friendly.find(params[:id])

答案 3 :(得分:0)

确保捆绑后重新启动控制台。