我有以下资源:
- >公司拥有多家公司 - >公司所属公司 - >公司拥有多州(因此,同一家公司可以在许多州) - >州有很多公司
我的问题是公司具有以下属性:名称和描述。
公司还有一个电话号码,但该电话号码取决于公司所在的州。
以下是我从表格的角度看待它的方式:
States
id
name
Corporation
id
name
Company
id
name
Company_states
id
company_id
state_id
phone_number
我应该如何设置关联才能完成此操作?感谢。
答案 0 :(得分:1)
使用has-many-through association:
class Corporation
has_many :companies
end
class Company
belongs_to :corporation
has_many :company_states
has_many :states, through: :company_states
end
class CompanyState
belongs_to :company
belongs_to :state
end
class State
has_many :company_states
has_many :companies, through: :company_states
end
company = Company.new(name: 'foo', description: 'bar')
state = State.find_by_name('MA')
company.company_states << CompanyState.new(state: state, phone_number: '800-555-1212')