前提・実現したいこと
userのshow画面に各ルーム内の最新のメッセージのみ取得し、表示させたいです!(Lineのような感じです)
発生している問題・エラーメッセージ
下記のような最新の情報を取得できるよう記述をしたのですが、show画面には何も表示されませんでした。
<%= room.messages.order(created_at: :desc).take.try(:body) %>
該当のソースコード
ruby
1(users/show.html.erb) 2 <% @rooms.each do |room|%> 3 4 <li id="user-rooms-top" class='user-room-list'> 5 <%= link_to room_messages_path(room.id) do %> 6 <div class='user-show-room-main'> 7 <% room.users.each do |user| %> 8 <% unless user.id == current_user.id %> 9 <div class='user-show-room-avatar'> 10 <% if user.avatar.present? %> 11 <%= image_tag user.avatar, class: "room-user-avatar" %> 12 <% else %> 13 <%= image_tag "blank-profile-picture-973460_640.png", class:"room-user-avatar" %> 14 <% end %> 15 </div> 16 <div class='user-show-room-info'> 17 18 <div class='user-show-room-header'> 19 <p class='user-show-room-name'> 20 <%= user.name %> 21 </p> 22 <p class='user-show-room-date'> 23 **<%= room.messages.order(created_at: :desc).take.try(:body) %>** 24 </p> 25 </div>
ruby
1(users_controller.rb) 2 def show 3 posts = Post.all.order(created_at: :desc) 4 @rooms = @user.rooms 5 end
試したこと
メッセージ機能を改めて確認しましたが、正常に値の取得もできていました。
なぜ表示されないのか教えていただけると幸いです。よろしくお願いします。
あなたの回答
tips
プレビュー