前提・実現したいこと
Railsでメッセージ機能の開発中で、LINEのように誰とトークしているか相手の名前を表示したいと考えています。
また、最新のメッセージを取得して以下のようにgroup一覧画面に表示したいと考えています。
「太郎」と書いている箇所に相手の名前。
「こんにちは」と書いている箇所に最新のメッセージを10字ほど表示。
という形にしたいです。
前提としてテーブルは4つあります。
・Userテーブル
・Groupテーブル
id
・Messageテーブル
message
user_id
group_id
・Group_userテーブル
user_id
group_id
発生している問題・エラーメッセージ
ログインユーザーの名前は取得できるのですが、トーク相手の名前とそのトークルームでのメッセージが取得できないです。
該当のソースコード
group_controller.rb
ruby
1class GroupsController < ApplicationController 2 3 def index 4 @currentGroupUsers = current_user.group_users 5 myGroupIds = [] 6 7 @currentGroupUsers.each do |c_user| 8 myGroupIds << c_user.group.id 9 end 10 end 11 12 def create 13 end 14end 15
groups/index.html.erb
<div class="group-wrap"> <div class="group-around"> <% current_user.groups.each do |group| %> <div class="each-message"> <div class="your-img"> <p> <%= image_tag("user.png", :alt => "募集者の画像", :class => "user-pic") %> </p> </div> <%= link_to group_messages_path(group) do %> <div class="your-content"> <div class="your-name"> <h2>太郎</h2> </div> <div class="your-message"> <!-- 30字以内--> <h2>こんにちは</h2> </div> </div> <% end %> </div> <% end %> </div> </div>
試したこと
この質問を参考にgroup_controllerを書きました。
この質問では以下のコードで相手ユーザーの情報を取得してきて、
@anotherEntries = Entry.where(room_id: myRoomIds).where('user_id != ?',@user.id)
以下のコードで相手ユーザー名を表示させているみたいですが上手くいきません。
idが見つからないとか怒られたりします。
<% @anotherEntries.each do |e| %> <%= link_to room_path(e.room.id) do %> <%= e.user.nickname %>とのDM<br> <% end %> <% end %>
補足情報(FW/ツールのバージョンなど)
どのようにしたら相手情報を取得できるか教えていただきたいです。
お願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/20 03:07
2019/04/20 03:10