我有一个列表模型和一个国家模型。每个列表都有一个国家(作为其地址详细信息的一部分),但每个列表也可以有多个 ExportCountries(这只是列表所有者出口到的国家/地区)。
A listing has_one country
A Country has_many listings
A listing has_and_belongs_to_many ExportCountries
An ExportCountry has_and_belongs_to_many Listings
如果我有两个单独的模型,我可能会这样做:
class Listing < ActiveRecord::Base
belongs_to :country
has_and_belongs_to_many :export_countries
end
class Country < ActiveRecord::Base
has_many: listings
end
class ExportCountry < ActiveRecord::Base
has_and_belongs_to_many :listings
end
但是我怎么能只用一个 Country 模型来做到这一点 - 因为否则 ExportCountry 将拥有完全相同的记录,这些记录不是很干燥,而且看起来不像 Rails。