2011-01-11 227 views
0

我有一個Item模型和一個Cycle模型。項目模型屬於循環,循環有許多項目。項目模型具有條形碼值和cycle_id值。將現有對象添加到另一個對象(Ruby on Rails)

我想有一個顯示循環模板,其中有10個空白字段用於輸入條形碼值。假設數據庫中已經存在100個項目(帶有條形碼值但沒有cycle_id)。當條形碼值輸入到字段中時,應用程序應提取每個輸入的條形碼值,並使用當前選定的循環的cycle_id更新相關項目。

這可能是一個太寬泛的問題,但我一直在圈子裏轉了幾個小時,我甚至不知道從哪裏開始。任何幫助是極大的讚賞。謝謝!

回答

1

在你的新週期/編輯表單,我會在表單中的某處添加十個空輸入框。沒有標記的最大的例子,但這樣的事情:

<% 10.times do %> 
    <input name="barcodes[]" /> 
<% end %> 

然後在您的週期控制器,我會找到循環,然後補充說,他們輸入的所有條形碼。如果不存在,我假設你不會創建新的條形碼。 (這是Rails 3語法)

def update 
    @cycle = Cycle.find(params[:id]) 

    barcodes = Item.where(:barcode => params[:barcodes]) 
    @cycle.barcodes = barcodes 

    @cycle.save 
end 
0

假設你想用條形碼ID爲1,2,3,4到id爲1週期項目添加你既可以做

cycle = Cycle.find(1) 
[1, 2, 3, 4].each do |barcode| 
    item = Items.where(:barcode => barcode) 
    cycle.items << item 
end 
cycle.save 

或做

cycle = Cycle.find(1) 
[1, 2, 3, 4].each do |barcode| 
    item = Items.where(:barcode => barcode) 
    item.cycle = cycle 
    item.save 
end 
+0

感謝您的幫助! – aguynamedloren 2011-01-12 04:15:17

相關問題