class Member < User
has_one :account
has_one :branch, :through => :account
has_one :company, :through => :account
end
class Account < ActiveRecord::Base
belongs_to :Member
belongs_to :company
belongs_to :branch
end
class Branch < ActiveRecord::Base
has_many :accounts
has_many :members, :through => :accounts
end
class Company < ActiveRecord::Base
has_many :accounts
has_many :members, :through => :accounts
end
我试图在多多关联中,在 through 表中同时保存两个对象关联。上述代码的查询功能没问题。 但是如果是这样做:
@member = @company.members.create
@branch.members << @member
第二句就会重新创建一个新的 account 对象出来,Account 表看起来是这样的。 Account Table
| id | member_id | company_id | branch_id | | 1 | 1 | 1 | null | | 2 | 1 | null | 1 |
有意思的是,在这个时候如果,使用
@branch = @member.branch
or
@company = @member.company
依然可以得到正确结果。
我 google 了半天,没有找到有用的资料。请问谁知道关于这个问题的解释?谢谢