我有以下形式的作品:Rails的:創建多個記錄一次提交使用多選場
<%= form_for @task do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :name %><br />
<%= f.text_field :name %>
</p>
<p>
<%= f.label :color_id %><br />
<%= f.text_field :color_id %>
</p>
<p><%= f.submit %></p>
<% end %>
這裏是我的模型:
class User < ActiveRecord::Base
has_many :tasks
end
class Task < ActiveRecord::Base
belongs_to :user
attr_accessible :name, :user_id, :color_id
end
class Colors < ActiveRecord::Base
end
我一直不成功at正在改變這個
<%= f.label :color_id %><br />
<%= f.text_field :color_id %>
到多選框。
我想這將是簡單的,但是當我試試這個:
<%= f.select(:color_id, [['Red', '1'],
['Blue', '2'],
['Yellow', '3'],
['Green', '4'],
['White', '5']
],{ :prompt => "Please select"},
{ :multiple => true, :size => 5 }
) %>
形式看起來正常,但提交不要緊當選擇什麼(無論是單打的選擇或多項選擇),它始終將數字1發送到數據庫中的color_id單元格。如果我不選擇任何內容 - 表格中的字段爲空白。
我想要發生的是它將color_ids提交到color_id單元格中但是爲每個任務和關聯的顏色添加單獨的行。
因此,如果我使用表單並選擇紅色和藍色 - 我的任務表將有兩行,存儲color_id的列將在一行中包含紅色標識,在另一行中包含藍色標識。
我也嘗試過使用集合和各種關係(has_many等)沒有成功。
任何援助將不勝感激。
目前還不清楚您是否希望將結果分成兩個新的獨立任務,一個是紅色和一個藍色,或者是一個與兩種顏色關聯的任務:紅色和藍色。 –
是color_id是一個整數嗎?這將需要一個字符串傳遞一個ID的數組 – fatfrog