2016-06-28 7 views
0

こんにちは私は、ユーザーがゲームに参加してチームを作成できるゲームアプリケーションを作りたいと考えています。私はすべてのゲームの横にあるリンク「チームの作成」を示し、以下の部分でローカルの部分をループ内で部分的にレンダリングしてアクセスする方法

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

: はここに私のteam_events.html.erbで

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 

コードgames_controller.rbに私のコード です。ユーザーがそれをクリックすると、チームを作成するためのフォームを含むモーダルダイアログが開きます。 _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 %> 

におけるモーダルウィンドウブートストラップ_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> 

enter image description here

コード

<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の無効:trueオプションをチェックします)。 だから私は卓球のチームを作成をクリックします。次のウィンドウがここ

enter image description here

現れる問題は、それが同じゲームを示し、すべてのゲームのために作成し、チームのリンクをユーザーがクリックです。 したがって、badmintonまたはcarromのチームを作成するをクリックします。

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

正しいコードは、次のようになります。ウィンドウでは、それは卓球を示しているだけ あなたが次の行に、次の2つのコロン、代わりのいずれかを使用している詳細

答えて

0

すべてのゲームでは、IDが「myModal」でdata-target = "#myModal"です。したがって、id 'myModal'を持つ最初のモーダルを開きます。 IDはドキュメント内で一意である必要があります。だから、この問題を解決するために各モーダルごとに異なるIDを使用してみてください。

多くのフォーム(ループ内)を使用しているため、javascriptからモーダルをトリガーし、ゲームのタイプやIDを渡すことでより多くのHTMLコンテンツを避けることができます。

+0

HI @sssskkkそれは働いています。私はイドをゲームごとに変更するようにしました。 –

0

が必要な場合は私に知らせてください。

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

ありがとう@Arslan Ali。それはタイプミスでした..私は今修正しました –

+0

あなたは直面していたエラーを解決しましたか? –

+0

いいえ、それはできません。:( –

関連する問題