2011-11-09 61 views
0

我在Ruby on Rails的實施,我試圖與collection_select工作軌道紅寶石,我是一個新手。我只想做,我有一個列表與角色組和列表。這些都是模型。因此,我列出了我的組,並在旁邊列出了該組的角色的下拉列表。每個小組有1個角色。 我已經實現了一些代碼,但collection_select總是隻記得最後一項。所以我想要一個有組的列表,與所需的角色相關聯。但是,現在我只有1件物品。這是我的看法:Collection_select始終只有1個項目,而不是數組?在上

<% @groups.each do |group| %> 
     <li>  
     <%= collection_select('group', 'role_id', @roles, 'id', 'name') %> 
     </li> 
<% end %> 

我現在不知道該怎麼辦?有人知道我做錯了什麼?

謝謝

+0

什麼是@roles? – DGM

+0

角色只是通過以下方式填充在控制器中:@roles = Role.find:all,:order =>'builtin,position' – user1027319

回答

0

那麼,我假設你正在做一個表格?該表格屬於哪種模式?

爲了幫助調試這樣的事情,它通常會是檢查您的development.log文件,看看有什麼參數的形式被傳遞給控制器​​是一個好主意。例如:

Parameters: {"commit"=>"Save", "action"=>"update", "_method"=>"put", 
    "id"=>"6168", "group"=>{"role_id"=>"2", ...}, "controller"=>"groups"} 

現在,通常Rails控制器需要一個帶有單個模型數據的表單。如果您想要同時更新多個模型或行,則必須具有創意。

首先要做的可能是嘗試返回組的陣列。目前您的表單不使用數組。我懷疑這些Rails助手會幫助你。像這樣的幫助者被設計爲一次更新一個ActiveRecord對象。

這是可能的,你可能需要重新考慮你的應用程序的設計,以更好地適應Rails的方式,或推出自己的形式,它通過迭代這個數組。推薦Rails的方式是推薦的選擇,它可能需要一些大腦從你的末端彎曲來指出這一部分。如果您需要幫助,可能會提供更多關於您實際嘗試實現的信息。

相關問題