회사 양식에 직접 제품을 추가하고 싶습니다. 기본적으로 회사는 많은 제품을 보유 할 수 있습니다.회사에 제품을 추가하는 방법?
class Company < ActiveRecord::Base
has_many :company_products
has_many :products, :through => :company_products
accepts_nested_attributes_for :products, :reject_if => lambda { |a| a[:name].blank? }, :allow_destroy => true
end
내 양식 :
<%= form_for(@company) do |f| %>
<ul>
<li class="clearfix">
<%= f.label :company_name %>
<%= f.text_field :company_name %>
</li>
<li>
<%= f.collection_select :product_ids, Product.all, :id, :name, { :prompt => 'Select a product' } %>
</li>
<li>
<%= f.collection_select :product_ids, Product.all, :id, :name, { :prompt => 'Select a product' } %>
</li>
<li>
<%= f.collection_select :product_ids, Product.all, :id, :name, { :prompt => 'Select a product' } %>
</li>
....
위, 정확히 작동하지 않습니다. 마지막으로 선택한 제품 만 추가하기 때문에 f.collection_select
.
이것은 내가 달성하고자하는 것입니다. 콘솔에서 나는 다음을 수행한다 :
company.update_attributes({"product_ids"=>["1", "2", "3"]})
id가 1, 2 및 3 인 제품을 지정된 회사에 할당한다.
레일스 3에서이 작업을 수행하는 적절한 방법은 무엇입니까?
<%= f.collection_select :product_ids, Product.all, :id, :name, { :prompt => 'Select a product'},{ :multiple => true } %>
대신 선택 드롭 다운 상자이 할 수있는 방법이 있나요 :
편집은 내 양식에서
, 그것은 작동? 제품에 대한
정의 방법'product_ids를 [] 'for #. 첫 번째 인수는 –
@Christian Fazzini의 관계 여야합니다. 나는 대답을 업데이트했습니다. – Hck
새로운 제안에 약간의 오타가 수정되었습니다. 그렇지 않으면 몇 가지 오류가 발생합니다. 둘째로, 당신의 제안은 –