前提・実現したいこと
group:memberrをたくさん持つ
member :たくさんのgroupに所属する
group_member :中間テーブル
認証機能なし(current_userが使えない)
グループに不参加のメンバーが参加するを押すと、グループに登録できるようにしたいです。
発生している問題
グループに登録することはできましたが、testで参加するを押すとtest2が登録されてしまいます。
コントローラーで、全ての未参加メンバーをeachで抽出しているのでそこが原因になっていると思いますが、
どうすれば参加するを押したときに、メンバーのidを参照してくれるのかがわかりません。
該当のソースコード
# グループメンバーコントローラー class GroupMembersController < ApplicationController def create @join_member = GroupMember.new @join_member.member_id = params[:group_member][:member_id] @join_member.group_id = params[:group_id] if @join_member.save redirect_to root_path end end end
# グループ詳細ページ <h2> グループに不参加のメンバー </h2> <table> <thead> <tr> <th>Name</th> <th colspan="3"></th> </tr> </thead> <tbody> <%= form_with(model:[@group, @join_member], local: true) do |f| %> <% @not_members.each do |member| %> <%= f.hidden_field :member_id, value: member.id %> <tr> <td><%= member.name %></td> <td><%= f.submit "参加する" %></td> </tr> <% end %> <% end %> </tbody> </table>
試したこと
手探りですが、https://www.javadrive.jp/ruby/hash/index7.htmlを参考に、
idに一意のkeyをつけることができないか試してみました。
# controllerに追加 オブジェクト.each{|key, value| 実行する処理1 実行する処理2 }
何か解決の糸口になるヒントを頂けると幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/16 08:15
2021/10/16 10:07
2021/10/16 10:28
2021/10/16 10:33
2021/10/16 10:42