所以我有一個文本框,用戶可以在其中放置逗號分隔的卡ID,例如1,2,3。當此用戶提交表單時,我想爲他提交的每個ID創建一個新記錄。所以一個爲1,一個爲2,一個爲3.從逗號分隔的ID一次創建多個記錄
我該怎麼做?
謝謝
所以我有一個文本框,用戶可以在其中放置逗號分隔的卡ID,例如1,2,3。當此用戶提交表單時,我想爲他提交的每個ID創建一個新記錄。所以一個爲1,一個爲2,一個爲3.從逗號分隔的ID一次創建多個記錄
我該怎麼做?
謝謝
您必須從控制器中的文本字段解析輸入值。 例如:
嘗試
ModelName.create(input_string.split(',').map{ |i| { :field => i.strip } })
split
會分裂的逗號和地圖輸入將產生{ :field => i }
數組,其中:field
是型號的文本字段。
有幾種方式來完成,取決於您的特定需求。 一種方法是循環訪問控制器中的所有條目,例如@ rogal111在他的回答中提示。
如果你的用戶和卡片之間有一對多的關係,這很可能是最好的選擇,我建議你通過嵌套的形式來完成它。瑞恩貝茨在那個上做了一些出色的screencasts。
您也可以使用批量插入,請參見[這個問題] [1] [1]:http://stackoverflow.com/questions/8505263/how-to-implement-bulk-插入式護欄-3 – Arthur 2012-07-27 17:49:35