在我的Ruby on Rails应用程序中,我有发票,它可以属于人或公司。为了使事情变得更加复杂,人也可以属于公司。
我认为在Rails中对此进行建模的正确方法是这样的:
class Invoice < ApplicationRecord
belongs_to :invoiceable, polymorphic: true
end
class Person < ApplicationRecord
has_many :invoices, as: :invoiceable
end
class Company < ApplicationRecord
has_many :invoices, as: :invoiceable
end
这是正确的方法吗?
如果是这样,人是否仍然可以通过这种方式属于公司?
感谢您的帮助。