我遇到以下错误:
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
答案 0 :(得分:1)
您可以尝试使用双冒号访问此模型的名称:
server = Sheep.find_by_id(id)
# become
server = ::Sheep.find_by_id(id)
^^
然后它应该工作。
我还没有足够的信息来说明为什么没有冒号就行不通,但我的直觉告诉我XController::Sheep
表示你的控制器名称有问题。