2010-01-18 130 views
0

我剛剛學習rails並遇到了一些問題。讓我開始與我的應用程序的簡單故障 - 它的(的種類)在多個模型的窗體上使用多個collection_select元素

  • 食譜有一種或多種成分(金槍魚,脾等)
  • 主料有一個單位(盎司,磅,等了一本食譜)
  • 單位是從查找表

這裏拉是截圖,以幫助進一步澄清事情: Form Mockup

她e是我的問題:我的collection_select元素名稱應該與unit[id][]

相反,它們都只是名爲unit[id]。下面是我使用的代碼片段:

 
collection_select(
    :unit, 
    :id, 
    @units, 
    :id, 
    :name, 
    options = { 
     :prompt => "Please Select", 
     :class => "ingredient_unit", 
     :name => "unit[][]", 
     :id => "unit:" + i.to_s() 
    } 
); 

然而,這是它的輸出:

 
<select id="unit_id" name="unit[id]"> 
<option value="">Please Select</option> 
<option value="1">Ounces</option> 
</select> 
... 

現在,在PHP中,這些下拉菜單將被命名爲unit[]。我是否以這種錯誤的方式去做?

感謝您的幫助

回答

0

我不知道的「名」選項的作用,在「選項」散列什麼。你能發佈一個鏈接到你找到的文件的地方嗎?看起來您正在正確使用收集選擇助手。 「這些下拉菜單是指單位[]」是什麼意思?如果你告訴我們你的這個表單的最終目標可能會有所幫助,因爲Rails通常只是爲你處理東西。利用它的魔力。

另外,如果您是Rails初學者,強烈建議查看Ryan Bates對複雜表單的截屏視頻。這裏是鏈接到第1部分: http://railscasts.com/episodes/73-complex-forms-part-1

+0

感謝您的鏈接,它幫助很多。至於':name'參數,它更多的是一個假設。與其他表單助手一樣,你可以傳入':name'來設置文本輸入的名字或者什麼。 至於我的表單目標,它是創建一個新配方,並將配料分配到該配方,並將單位分配給每種配料。至於'unit []'備註:在PHP中,如果你想指定一個表單元素的數組,你可以在元素名的後面追加'[]',然後'$ _POST'將把'$ _POST [「單位「]'作爲一個數組。我希望有所幫助。 – 2010-01-18 21:10:05

+0

只是一個警告,他談到的一些事情的代碼已經被嵌套屬性取代。 http://railscasts.com/episodes/196-nested-model-form-part-1 – 2010-01-18 22:03:31