我正在努力为公司增加一家子公司。所以,我将去公司,并从列表中选择1个或更多的子公司并保存。所以我不是将公司存入子公司(如下图所示),而是在公司增加子公司,
那么下面这个例子对我没有任何意义!我的意思是如何将子公司保存到公司?
class Company < ActiveRecord::Base
validates :name, presence: true
has_many :subsidiaries, :class_name => "Company", :foreign_key => "parent_company_id"
belongs_to :parent_company, :class_name => "Company",
end
你能不能告诉我保存在我的控制器中的样子,因为我确定这是我出错的地方。
目前我的问题是我保存的方式我将所谓的子公司保存为parent_id,所以基本上是相反的:
这里我从列表中选择一个子公司:
<%= f.collection_select(:parent_company_id, @companies, :id, :name, :include_blank => true, :multiple => true) %>
要明确目前发生的事情:
答案 0 :(得分:0)
这种做法的典型方式:
<p>Parent Company</p>
<%= f.collection_select :parent_company_id, ... %>
您可以查看所有子公司记录并设置其母公司。然后,您可以查看@parent.subsidiaries
列表。
如果您想从母公司的表单中完成所有操作,您将不得不使用javascript以及fields_for
和accepts_nested_attributes_for
,或者使用一堆复选框来做一些诡计 - 记录实际更改的是子记录,而不是父记录。
观看this railscast可能会有所帮助。