2013-01-02 41 views
0

我有2個模型的用戶和團隊。一個團隊可以有許多用戶,每個用戶都屬於一個團隊。導軌3從嵌套模型選擇控制

team_id是我用戶表中的一列,作爲fk。

我想在創建用戶表單上有一個選擇下拉列表,其中包含我所有的團隊team_id。

此代碼我想要什麼,但

​​

它不會嘗試的id值添加到用戶。這是錯誤

Parameters: 
{"utf8"=>"✓", 
"authenticity_token"=>"xxxxx", 
"user"=>{"name"=>"brand new", 
"email"=>"[email protected]", 
"password"=>"[FILTERED]", 
"password_confirmation"=>"[FILTERED]", 
"teams"=>{"team_initials"=>"27"}}, 
"commit"=>"Create my account"} 

它抱怨說它不能添加到團隊模型。

我想要做的就是爲我的創建用戶表單獲取所有現有團隊的ID,以便在創建用戶時可以選擇該用戶團隊。

我有上面的team_initials的原因是我試圖使用更多的用戶友好的字段選擇,但仍然是用戶團隊ID作爲值。

回答

0

我認爲你是在正確的軌道上。 fields_for機制用於設置關聯模型中的值。我認爲你所要做的就是建立聯繫。

所以,你可以失去fields_for行,然後這部分:

builder.collection_select :team_initials, Team.all, :id, :team_initials 

應該是:

f.collection_select :team_id, Team.all, :id, :team_initials 

我期待在這裏我對collection_select,因爲我不知道它的信息關閉我的頭頂: http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html

我認爲這會將此參數從"teams"=>{"team_initials"=>"27"}},更改爲"team_id"=>"27",

我希望能解決它。

+0

這工作得很好我絕對過於複雜了。幾乎很容易。謝謝 – ducati1212