我正在修复过去设置'种类'的多态关联。这里是细节。修复多态关联
User.rb has fields:
user_type_id
user_type
我需要User
属于Company
或Employee
。
我遇到的问题是因为User.rb字段未使用Rails约定命名(类似usable_type
和usable_id
)。我如何根据我所拥有的领域建立协会?
我正在修复过去设置'种类'的多态关联。这里是细节。修复多态关联
User.rb has fields:
user_type_id
user_type
我需要User
属于Company
或Employee
。
我遇到的问题是因为User.rb字段未使用Rails约定命名(类似usable_type
和usable_id
)。我如何根据我所拥有的领域建立协会?
有一个无证:foreign_type
选项上belongs_to
:
class User < ActiveRecord::Base
belongs_to :user_type, :polymorphic => true, :foreign_type => 'user_type'
end
最容易改变字段的名称以适应Rails约定:由于多态关联还没有正确设置,并且这些字段不应该用于其他任何事情,所以你应该没有问题。
基本上你需要选择一个名字xyz
,以满足以下
class User < ActiveRecord::Base
belongs_to :xyz, :polymorphic => true
end
class Employee < ActiveRecord::Base
has_many :users, :as => :xyz
end
class Company < ActiveRecord::Base
has_many :users, :as => :xyz
end
您的用户模型领域
User
xyz_id :integer
xyz_type :string
这也将使更多维护的代码以后。
我不能得到相反的协会合作 - 你怎么办相当于'has_one'? – sscirrus