Ruby on rails 尝试联接两个表并显示正确的信息
快速解释,它抓住当前用户的追随者,并将他们加入到发送/接收的消息中。一次只显示一个 我用它来显示收件箱中的“消息”,该部分工作正常,因为我想按最新发送或接收的消息id来订购该收件箱 现在我的观点是这样的,(这真是一团糟,我知道我有办法用ruby做得更干净) 试试这个Ruby on rails 尝试联接两个表并显示正确的信息,ruby-on-rails,ruby,Ruby On Rails,Ruby,快速解释,它抓住当前用户的追随者,并将他们加入到发送/接收的消息中。一次只显示一个 我用它来显示收件箱中的“消息”,该部分工作正常,因为我想按最新发送或接收的消息id来订购该收件箱 现在我的观点是这样的,(这真是一团糟,我知道我有办法用ruby做得更干净) 试试这个 -if f.sent_messages.first && f.received_messages.first -if f.sent_messages.last.id > f.received_message
-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)
我之所以有如此大规模的elsif声明,是因为如果其中一个用户没有发送或接收此类信息,它将破坏页面。这是由于某种原因造成的。它仍然在检测消息的不存在信息并抛出一个错误。你能发布错误吗?这将有助于确定问题。因此,我编辑了我的帖子,因为我假设你使用的是haml,我忘记了运行ruby代码的几个字符。是的,请给我一些修改,我实际上使用的是slim。
-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)
-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)