Ruby on rails 4 NameError:迁移到Rails4后未初始化FriendlyId为的常量

Ruby on rails 4 NameError:迁移到Rails4后未初始化FriendlyId为的常量,ruby-on-rails-4,friendly-id,Ruby On Rails 4,Friendly Id,我刚从3.12迁移到Rails4,我使用FriendlyId,它在Rails3.12中运行良好 我按照我在这里找到的说明做了 因此,我的文件功能: gem 'friendly_id', '~> 5.0.0' 使用友好的_id 5.0.4 但我一直收到以下错误消息: NameError: uninitialized constant <Classname>::FriendlyId NameError:未初始化的常量::FriendlyId 对于每个求助于FriendlyId

我刚从3.12迁移到Rails4,我使用FriendlyId,它在Rails3.12中运行良好 我按照我在这里找到的说明做了

因此,我的文件功能:

gem 'friendly_id', '~> 5.0.0'
使用友好的_id 5.0.4

但我一直收到以下错误消息:

NameError: uninitialized constant <Classname>::FriendlyId
NameError:未初始化的常量::FriendlyId
对于每个求助于FriendlyId的类

我看到了这个
但在我的例子中,bundle安装并没有改变任何东西

我在Rails 4中遇到了同样的问题,我通过重新启动spring解决了这个问题:

$ spring stop

我再次运行了控制台,它又开始工作了。

如果没有看到您的代码,就不能完全确定,但是您需要将
扩展FriendlyId
添加到您的模型中

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

在本例中,
:foo
是您希望用来创建唯一slug的
友好\u id
属性。

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

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

请确保在绑定后重新启动控制台。

之后是否重新启动了服务器?是的,我重新启动了,但没有任何效果。您有没有想过这一点?我在一个已经使用FriendlyId的现有应用程序中添加的新模型上突然看到了这一点。我的
extend FriendlyId
语句中有一个输入错误。不,我还没有弄明白,唉……所以我无法将我的应用程序迁移到Rails 4。如果你不使用spring,你可以重新启动Rails服务器,你应该会没事的。我的代码与你在我的客户机模型中的代码相同,只是它的用法:(带有:)然后在我的产品模型中,我有:extend FriendlyId friendly_id:foo,:use=>:scope,:scope=>:Client(在Rails 3中工作正常)是否尝试删除“:”?我会尝试精确地匹配他们在文档中的内容。我相信对
extend
方法使用冒号是无效的语法。是的,我这样做了,它会生成:语法错误,意外的[,期望关键字_do或“{”或“{”或“('friendly_id:code,use[:slugged,:finders],此外,语法use:[:slugged,:finders]非常有效,在Rails 3I中将其改为:,:use=>[:slughed,:finders](如文档中所述),但我仍然收到相同的错误消息:NameError:uninitialized constant FriendlyId