0
我正在嘗試創建一個應用程序評分。由於我是StackOverflow的新手,我無法上傳屏幕截圖,但這裏是截屏鏈接多種形式的一個提交按鈕
- Now it looks like this。
- This is what I want it to be。
- 以下是涉及視圖的模型。只需點擊下一張圖片= Photostream中的最後一張圖片(再次StackOverflow將不允許發佈超過3個超鏈接)。
上述這種觀點是從:本地主機/比賽日/ 4 /匹配/新
的關係是這樣的:
- 甲比賽日的has_many匹配。
- 一場比賽has_many比賽(最多3場,但現在我們將堅持1場)。我們將更新分數屬性。
- 遊戲has_many對(最多2個)。
我的問題是:
你如何代碼在MatchesController(擊中時啓動用戶)創建有2對的比賽,每一對都有自己的得分(這是一個屬性在遊戲模式中)?
如何在視圖中循環添加屬於Match的其他遊戲(Score屬性)和Pair表單(本例中爲Match 10)?就像在上面的屏幕截圖2中一樣。
匹配控制器:
def new
@matchday = Matchday.last
@match = Match.new()
@match.number = match_numbering
@pairs = Pair.all
@matchday.best_of.times { @match.games.build }
end
def create
@match = Match.new(params[:match])
@matchday = Matchday.last
@match.number = match_numbering
if @match.save
@matchday.matches << @match
flash[:success] = "Match recorded"
redirect_to matchdays_path
else
@title = "Record Match"
render 'new'
end
end
/視圖/火柴/新:
<h1>Match <%= @match.number %> of Matchday <%= @matchday.number %> details</h1>
<%= form_for @match, :url => {:action => 'create', :id => @match.id } do |p| %>
<%= render 'shared/error_messages', :object => p.object %>
<%= render :partial => 'match_form', :locals => {:p => p} %>
<% for game in @match.games %>
<%= fields_for :games, game do |game_form| %>
<p>
Score: <%= game_form.text_field :score, :size => 2 %>
</p>
<p>
Pair: <%= select(@pairs, :pair_id,Pair.all.collect{|p| [p.name]}) %>
</p>
<% end %>
<% end %>
<div class = "action_links">
<p> <%= link_to "Cancel", matchdays_path, :class => "cancel" %> |
<%= p.submit "Start" %></p>
</div>
<% end %>
我認爲循環必須放一些地方在for循環,但不知道如何執行它。再加上我fields_for並選擇表單可能會是不正確的......可以學到很多東西:)