database design - Rails models has_many -
im starting learn rails today , not quite sure how work:
lets have company, company may have many subsidiaries.
a subsidiary company. company cannot own subsi diary obvious reasons.
a subsidiary cannot have subsidiary subsidiary of company
so subsidiary can have subsidiaries, unlimitedly nested
what im not sure below subsidiary company
class company < activerecord::base has_many :subsidiaries end class subsidiary < activerecord::base belongs_to :companies end im sure wrong, putting in here
update:
ok, followed instructions below this:
class company < activerecord::base validates :name, presence: true belongs_to :company has_many :subsidiaries, foreign_key: 'company_id', class_name: 'company' end in 1 of templates:
<% @companies.each |company| %> <li><%= link_to "#{company.name} #{company.subsidiaries.length > 0 ? "(#{company.subsidiaries.length} subsidiaries)" :"" }", company_path(@company, :id => company.id) %></td> <% end %> now show wrong, happens ones subsidiaries shows have no subsidiaries , ones subsidiaries shows have subsidiaries, basicly showing parent's now, "children"
any idea why happens?
what want recursive self relation:
class company < activerecord::base belongs_to :company has_many :subsidiaries, foreign_key: 'company_id', class_name: 'company' end so, essentially, company belongs company , has many companies. however, have special name it's companies (subsidiaries), give "alias" manually setting relation. might want same "parent" company.
you use validations check conditions.
Comments
Post a Comment