3
我有三个类定义如下:单个表继承子类未知
class Animal < ActiveRecord::Base
attr_accessible :animal_definition_id, :aquarium_id
belongs_to :animal_definition
belongs_to :aquarium
has_many :comments, as: :commentable
end
class Fish < Animal
end
class Coral < Animal
end
如果我火了一个控制台和类型:
Coral.all
我得到:
NameError: uninitialized constant Coral
from (irb):1
from /Users/gjr/.rvm/gems/[email protected]/gems/railties-3.2.10/lib/rails/commands/console.rb:47:in `start'
from /Users/gjr/.rvm/gems/[email protected]/gems/railties-3.2.10/lib/rails/commands/console.rb:8:in `start'
from /Users/gjr/.rvm/gems/[email protected]/gems/railties-3.2.10/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
现在...如果我键入Animal.all
它按预期工作。然后Coral.all
工作正常!
为什么动物需要在珊瑚工作之前参考?顺便说一句,如果我正在做的事情不是all
,那也是一样的行为。 Coral.class
做同样的事情。
我在实际的应用程序中没有看到这种行为,但我担心它会发生一个奇怪的错误。
谢谢!