1

我面临以下错误:

NameError at 
uninitialized constant XController::Sheep

在这条线上

server = Sheep.find_by_id(id)

这是我的设置:

在下面models/sheep.rb

class Sheep < ActiveRecord::Base
  has_many :kids
end

在下面models/kid.rb

class Kid < ActiveRecord::Base
  belongs_to :sheep # I tried adding , :class_name => 'Sheep' didn't do anything
end

在下面config/initializers/inflections.rb

ActiveSupport::Inflector.inflections(:en) do |inflect|
    inflect.uncountable 'sheep'
end

表名其实是sheep我查的

我还应该检查什么?

编辑:在控制器中controllers/farm.rb我打了两个电话:

@kid = Kid.find_by_id params[:id]
@sheep = Sheep.find_by_id(id) # works only when adding :: as in the answer
4

1 回答 1

1

您可以尝试使用双冒号访问此模型的名称:

server = Sheep.find_by_id(id)
# become
server = ::Sheep.find_by_id(id)
         ^^

然后它应该工作。

我还没有足够的信息来说明为什么没有冒号它就不能工作,但我的直觉告诉我,这XController::Sheep表明你的控制器名称有问题。

于 2013-08-20T18:00:00.460 回答