我正在尝试建立一个小型数据库来处理责任。
不同的用户可以负责不同的事情(“managables”)
用户可以负责管理n个管理员,管理员可以负责管理。
我有以下型号:
class User < ActiveRecord::Base
has_many :responsibilities
end
class Responsibility < ActiveRecord::Base
belongs_to :managable, :polymorphic => true
belongs_to :user
end
class Project < ActiveRecord::Base
has_many :responsibles, :as => :managable, :class_name => 'Responsibility' , :source_type => "Project"
end
我刚刚使用rails g scaffold User
生成模型,然后在model.rb文件中添加了关系。
我希望能够使用类似的东西:
u = User.new
p = Project.new
r = Responsibility.new
r.user = u
r.managable = p
并使用类似p.responsibles
的内容检索每个可管理对象的负责人
NoMethodError: undefined method `responsibles' for #<Responsibility:0x532f1a0>
它也让我觉得managable_type
列没有填满。它总是0。
我错过了什么?