我很難讓:association
幫手工作。基本上我想要一個包含所有32支隊伍的選擇框,而不是無用的:team_id
數字,我想使用ActiveRecord魔術來顯示相應團隊的'abbr'或'city'。我正在使用MySQL DB btw。Rails simple_form關聯問題
模式
class Player < ActiveRecord::Base
belongs_to :teams
end
class Team < ActiveRecord::Base
has_many :players
end
控制器
@player = Player.find(params[:id])
查看
<%= simple_form_for @player do |f| %>
<%= f.input :first %>
<%= f.input :last %>
<%= f.association :teams %>
<%= f.button :submit %>
<% end %>
================ ==
只是爲了幫助可視化數據,這裏是數據出現在數據庫中的一個抽樣。
數據庫 - 團隊
+----+-----------+-----------+---------------------+---------------------+------+
| id | city | name | created_at | updated_at | abbr |
+----+-----------+-----------+---------------------+---------------------+------+
| 1 | Arizona | Cardinals | 2013-08-27 17:23:55 | 2013-08-27 17:23:55 | ARI |
| 2 | Atlanta | Falcons | 2013-08-27 17:23:55 | 2013-08-27 17:23:55 | ATL |
| 3 | Baltimore | Ravens | 2013-08-27 17:23:55 | 2013-08-27 17:23:55 | BAL |
| 4 | Buffalo | Bills | 2013-08-27 17:23:55 | 2013-08-27 17:23:55 | BUF |
+----+-----------+-----------+---------------------+---------------------+------+
數據庫 - 玩家
+----+---------+----------+--------+-----------------+---------------------+---------------------+
| id | team_id | position | first | last | created_at | updated_at |
+----+---------+----------+--------+-----------------+---------------------+---------------------+
| 1 | 5 | QB | Derek | Anderson | 2013-08-26 18:48:59 | 2013-08-27 20:41:37 |
| 2 | 24 | QB | Matt | Barkley | 2013-08-26 18:48:59 | 2013-08-26 18:48:59 |
| 3 | 18 | QB | McLeod | Bethel-Thompson | 2013-08-26 18:48:59 | 2013-08-26 18:48:59 |
| 4 | 6 | QB | Matt | Blanchard | 2013-08-26 18:48:59 | 2013-08-26 18:48:59 |
| 5 | 26 | QB | Sam | Bradford | 2013-08-26 18:48:59 | 2013-08-26 18:48:59 |
+----+---------+----------+--------+-----------------+---------------------+---------------------+
感謝您捕捉複雜的問題,這個noob的變量很多;)Theres兩個問題我仍然摔跤,你可能會有所幫助。 1.它沒有正確更新對象(它使用:team_id)和2.我想將其從Team.name(默認)更改爲Team.abbr,我的嘗試不起作用。 –
這是行不通的嗎? 'f.association:team,label_method :: abbr,value_method :: id' – depa
修復了第二個問題。更新問題可能在應用程序的其他地方,因爲其他字段沒有更新。當我弄明白的時候我會回覆。 –