2016-06-28 47 views
0

嗨我想製作一個遊戲應用程序,用戶可以參與遊戲並創建團隊。 這裏是我的代碼 在games_controller.rbRails將當地人渲染成循環中的部分並訪問它們

def team_events 
    @doubles = Game.where(game_type: Game::DOUBLES) 
    @mixed_doubles = Game.where(game_type: Game::MIXED_DOUBLES) 
    @others = Game.where(game_type: Game::OTHERS) 
end 

代碼在我team_events.html.erb:

<div class = "container-fluid"> 
    <div class = "row"> 
    <%= render partial: "shared/table", locals: {doubles_games: @doubles} %> 
    </div> 
</div> 

在下面的部分我顯示鏈接「創建團隊」每場比賽的旁邊。當用戶點擊它時,會打開一個模式對話框,其中包含用於創建團隊的表單。 enter image description here

代碼在_table.html.erb局部

<table class = "table table-hover"> 

    <thead> 
    <tr> 
     <th> Game </th> 
     <th> Game Type </th> 
     <th> Actions </th> 
    </tr> 
    </thead> 

    <tbody> 
    <% doubles_games.each do |game| %> 
     <tr> 
     <td><%= game.name %></td> 
     <td><%= game.game_type %></td> 
     <td> 
      <a href="#" type="button" data-toggle="modal" data-target="#myModal"> 
      Create Team 
      </a> 
     </td> 
     </tr> 
    <% end %> 
    </tbody> 

</table> 

自舉模式窗口

<div class="modal fade" id="myModal" role="dialog"> 
    <div class="modal-dialog"> 
    <div class= "modal-content"> 

     <div class="modal-body"> 
     <%= render partial: 'teams/form', locals: {game: game} %> 
     </div> 

    </div> 
    </div> 
</div> 

代碼在_form.html.erb

<%= simple_form_for Team.new, url: teams_path(game_id: game.id), method: :post do |f| %> 
    <%= f.input :game_name, label: "Game", input_html: {value: "#{game.name}"}, disabled: true %> 
    <%= f.input :game_type, label: "Type", input_html: {value: "#{game.game_type}"}, disabled: true %> 
    <%= f.input :name, autofocus: true, required: false, hint: "Name your team" %> 
    <%= f.input :members, as: :text, required: true, hint: "Enter the names seperated by comma" %> 
    <%= f.submit "Create", class: "btn btn-success" %> 
<% end %> 

當用戶點擊遊戲旁邊的「創建團隊」鏈接,模態窗口打開並顯示窗體創建團隊出現。同樣在模式窗口中,用戶創建團隊的遊戲也會出現(在_form.html.erb中禁用:true選項)。 所以當我點擊創建乒乓球隊。下面的窗口出現

enter image description here

這裏的問題是任何遊戲用戶點擊創建團隊鏈接,它顯示了同樣的遊戲。 所以,如果我點擊羽毛球或卡羅姆的創建團隊。在窗口它顯示乒乓球僅 請讓我知道如果你需要更多的細節

回答

0

對於所有遊戲,您都有id'myModal'和data-target =「#myModal」。所以它打開了第一個使用ID'myModal'的模式。 Id在文檔中必須是唯一的。因此,請嘗試爲每種模式使用不同的ID來解決此問題。

你有很多形式(內循環),所以你可以從JavaScript觸發模式並傳遞遊戲類型或id以避免更多的html內容。

+0

HI @sssskkk它的工作。我已經使id改變爲每場比賽。 –

0

在下一行,使用兩個冒號,而不是一個:

<%= render partial: "shared/table", locals: {:doubles_games: @doubles} %> 

正確的代碼應該是以下幾點:

<%= render partial: "shared/table", locals: { doubles_games: @doubles } %> 
+0

謝謝@阿爾斯蘭阿里。這是一個錯字..我現在糾正它 –

+0

它解決了你遇到的錯誤嗎? –

+0

不,它沒有.. :( –