Rails:两个表has_many一个表

时间:2015-11-16 14:41:44

标签: ruby-on-rails ruby-on-rails-4 rails-activerecord

实现这一目标的更好方法是什么?

class Opf < ActiveRecord::Base
    has_many :budget_items, dependent: :destroy, foreign_key: 'budget_id'
end

class Voucher < ActiveRecord::Base
    has_many :budget_items, dependent: :destroy, foreign_key: 'budget_id'
end

class BudgetItem < ActiveRecord::Base
    belongs_to :opf
    belongs_to :voucher
end

Opf和Voucher可能有很多BudgetItem:

Opf.budget_items.build
Voucher.budget_items.build

我通过此设置获得的问题是它们共享相同的外键。

1 个答案:

答案 0 :(得分:1)

对于这种情况,您应该考虑polymorphic associations。它们易于建立和维护。