我正在Rails项目中与STI合作。我有一个模型,例如Person
,它有很多(例如)Child
。然后,我要在Person
模型上使用STI,例如
class Person < AR::Base
has_many :children
end
class Child
belongs_to :person
end
class Employee < Person
...
end
类似Employee.first.children
的东西在控制台上起作用,但在rails项目本身上却不起作用(例如在控制器或视图中)。
这是正确的方法吗?还是有另一种方法?
按要求进行编辑
因此,在我的控制器/视图中,我会遇到类似的东西
@employee = Employee.unscoped.find(params[:id])
@children = @employee.children
,但它返回ActiveRecord::AssociationNotFoundError: Association named children was not found on Employee. Perarphs you misspelled it? [...]
。但是,正如我之前说过的,如果我在控制台中运行所有这些程序,那么它将起作用