我是Rails中的新手。我有三名桌球員,花名冊和陣容。我有模型條目來創建玩家所屬的陣容和陣容,陣容has_many球員和陣容has_many球員之間的關係。在Rails 3.1中創建一種向表中添加新記錄的方法
我遇到的問題是當我創建名單時我有一個roster_name屬性,我可以添加一個單一的球員。我想增加更多的球員到相同的花名冊上,但我正在努力如何將新球員添加到花名冊中。默認的新視圖調用_form部分,它期望我創建一個全新的名單,這將允許我再次添加一個用戶。
什麼是軌道的方式來添加一個新的球員到現有名單。請幫我瞭解我需要什麼組件。我是否需要一個新的部分,我可以打電話給一個領域添加新的球員?我必須創建一個新的方法或控制器嗎?我所假設的是,我需要一種方法來引用現有名單,同時能夠添加新的player_id。任何幫助都會很棒。
這裏是我的模型/控制器和視圖
My model roster.rb
class Roster < ActiveRecord::Base
has_many :players
accepts_nested_attributes_for :players, :allow_destroy => true
end
My model player.rb
class Player < ActiveRecord::Base
belongs_to :roster
end
My controller rosters_controller.rb
def new
@roster = Roster.new
@players = Player.all
End
My roster view
<%= form_for(@roster) do |f| %>
<% if @roster.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@roster.errors.count, "error") %> prohibited this roster from being saved:</h2>
<ul>
<% @roster.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :player_id %><br />
<%= f.text_field :player_id %>
<%= collection_select("roster", "player_id", @players, "id", "gname") %>
</div>
<div class="field">
<%= f.label :player_id %><br />
<%= f.text_field :player_id %>
<%= collection_select("roster", "player_id", @players, "id", "gname") %>
</div>
<div class="actions">
<%= f.submit %>
</div>
我似乎與嵌套屬性範例衝突。在該示例中,它使用註釋模型作爲文章模型的嵌套屬性。該評論僅與該文章有關。我想將player_id與名單關聯起來,並且即使沒有名單也讓球員存在。所以在應用程序的使用中,玩家將首先被添加,然後創建名單以選擇名單中的玩家。一些球員將不會在名冊上,我計劃擁有更多的球員名單。你發給我的例子仍然適合嗎?我在訪問播放器時遇到問題。 – RickO 2012-02-20 14:42:58
使用關於模型結構的代碼更新問題。 – 2012-02-21 06:34:51
對不起,對於遲到的回覆,我沒有看到你的回覆。我期待着一個獨立的領域。這是我的代碼。我試圖通過id將許多球員添加到名冊表中。我知道我的觀點現在有缺陷。我希望在新陣容字段中有多個可用於玩家ID的字段,從集合選擇下拉列表中選擇玩家並添加每個填充的字段。 – RickO 2012-03-03 00:18:44