我正在以这样的方式为Rails中的应用程序实现某种信使:当前用户有一个与他聊天的人的列表,当他点击一个项目时,会出现一个带有对话的引导模式。问题是,他点击同一个对话的项目(他聊过的用户)没有问题出现在模态中(更具体地说:他与列表中第一个用户的对话)。这意味着模态的内容永远不会得到更新。 我必须提到问题在于视图,因为来自服务器的数据是正确的。
以下是观点:
<% @conversations.each do |conversation| %>
<div class="list-group-item">
<div class="row-picture">
<%= image_tag conversation[:buddy].user_detail.picture.url, alt: "img", class: "circle"%>
</div>
<div class="row-content">
<h3 class="list-group-item-heading"><%= link_to conversation[:buddy].name, conversation[:buddy] %></h3>
<p class="list-group-item-text"><%= conversation[:last_reply].reply %></p>
<p class="text-muted"><small><%= conversation[:last_reply].created_at.strftime("%m/%d/%Y %H:%M ")%></small></p>
<a href="#" data-toggle="modal" data-target="#show-conversation" rel="tooltip" data-placement="left" title="Click to see conversation"><i class=" glyphicon glyphicon-eye-open"></i></a>
<div class="modal fade" id="show-conversation" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="false">
<div class="modal-dialog text-left">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Messages!</h4>
</div>
<div class="modal-body">
<div class="list-group scroll-modal">
<% messages = conversation[:conversation_replies] %>
<% messages.each do |message| %>
<%= message.reply %>
<% end %>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="list-group-separator"></div>
<% end %>
答案 0 :(得分:0)
尝试使用reload检查您是否拥有最新数据。
我假设您可以在conversations
中获得@conversations
数组。所以即使如果重新加载也无法帮助您尝试通过检查以下内容来获取相关对话: -
if current_user.chatted_with.includes(user_1)
//show the chats else chat don't exists
end
同时验证它是ActiveRecord对象的数组。然后使用dot
运算符访问它: -
<% @conversation.conversation_replies.each do | messages| %>
<% messages.each do |message| %>
<%= message.reply %>
<% end %>