0
@followers = current_user.followers.joins(:received_messages).uniq.order("id DESC")

簡単に説明すると、現在のユーザーのフォロワーを取得し、送受信されたメッセージに参加させます。一度に 1 つだけを表示します。

これを使用して、受信トレイに「メッセージ」を表示しますが、その部分は正常に機能します。その受信トレイを最新の送信または受信メッセージIDで注文したいからです。

現在、私のビューは次のようになっています(これはめちゃくちゃです。ルビーでよりきれいにする方法があることはわかっています)

-if f.sent_messages.first && f.received_messages.first
  -if f.sent_messages.last.id > f.received_messages.last.id
    p This is running
    =image_tag f.avatar
    h2= f.uid
    p= f.sent_messages.last.body
    =link_to "Go To Conversation", conversation_path(:id => f.sent_messages.last.sender_id)
  -else
    =image_tag f.avatar
    h2= f.uid
    p= f.received_messages.last.body
    =link_to "Go To Conversation", conversation_path(:id => f.received_messages.last.receiver_id)
  end
-elsif f.sent_messages.first && f.received_messages.first == nil
  =image_tag f.avatar
  h2= f.uid
  p= f.sent_messages.last.body
  =link_to "Go To Conversation", conversation_path(:id => f.sent_messages.last.sender_id)
-elsif f.sent_messages.first == nil && f.received_messages.first
  =image_tag f.avatar
  h2= f.uid
  p= f.received_messages.last.body
  =link_to "Go To Conversation", conversation_path(:id => f.received_messages.last.receiver_id)
4

1 に答える 1

0

これを試して

-if f.sent_messages.any? || f.received_messages.any?
  =image_tag f.avatar
  %h2 = f.uid
  -unless f.sent_messages.empty? || f.received_messages.empty?
    -message,id = f.sent_messages.last.id > f.received_messages.last.id ? [f.sent_messages.last,f.sent_messages.last.sender_id] : [f.received_messages.last, f.received_messages.last.receiver_id]
  -else
    -message,id = f.sent_messages.last.nil? ? [f.received_messages.last,f.received_messages.last.receiver_id] : [f.sent_messages.last,f.sent_messages.last.sender_id]
  %p = message.body
  =link_to "Go To Conversation", conversation_path(:id => id)
于 2013-11-14T21:40:23.263 に答える