前提・実現したいこと
合コンマッチングアプリを作成中です。
つまり、複数人対複数人のマッチングアプリです。
トップページにグループの情報を表示しようとしています。
その際にcurrent_userが男性なら女性グループの情報を、女性なら男性グループの情報を表示したいです。
この実装で使っている主なテーブルは、UserテーブルとUserInfoテーブルです。
Userテーブルにはユーザーの情報(名前、性別、etc)が、UserInfoテーブルにはグループ情報(人数、写真、etc)が記載されています。1人のuserが1つのuser_infoを投稿できるというイメージです。
発生している問題・エラーメッセージ
SyntaxErrorが表示されています。
index.html.erb
・ ・(省略) ・ <div class="top_page"> <h2>現在ログインしているグループ一覧!</h2> <ul class="groups"> <% @user_infos.each do |user_info| %> <li class="list"> <div class='user_infos'> <div class="user_img"> <%= image_tag user_info.image.variant(resize:'400x400'), class: "user_img" if user_info.image.attached? %> <% if user_signed_in? && user_info.user_id != current_user.id %> <%= link_to 'フォローする', "#", class: "follow_btn" %> <% end %> <% unless user_signed_in? %> <%= link_to 'フォローする', new_user_session_path, class: "follow_btn" %> <% end %> <div class="top"> <p class="nickname"><%= user_info.user.nickname %>|</p> <p class="area"><%= user_info.area_id %>|</p> <p class="people_num"><%= user_info.people_num_id %>人</p> </div> <div class="down"> <p class="user_info_text"><%= user_info.text %></p> </div> </div> </div> </li> <% end %> </ul> </div>
user_infos_controller.rb
ruby
1・ 2・(省略) 3・ 4def index 5 if current_user.gender == "女" 6 @user_infos = UserInfo.where(user.gender: "男") 7 set_user_info_column 8 elsif current_user.gender == "男" 9 @user_infos = UserInfo.where(gender: "女") 10 set_user_info_column 11 end 12end 13・ 14・(省略) 15・
コードの説明、試したこと
genderカラムはUserテーブルに記載してあります。
なのでUserInfoでgenderカラムの情報を取得したい場合、Userテーブルを経由しないといけません。ここがわからないところです( ; ; )
コントローラーの、
@user_infos = UserInfo.where(user.gender: "男")
をいろいろ試しました。
特にWHERE句を、where(user_info.user.gender: "男")など変更してみましたが、取得できませんでした。
補足情報
UserモデルとUserInfoモデルのアソシエーションはできています。
どなたか教えていただけると幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー