我有一个应用程序,其中我不同的网络有消息。
在我的网络节目视图中,我使用部分“概述”显示所有消息,其中显示了消息内容的链接。消息的内容在#detailed div:
中加载ajax<div class="span2" id="sidebar">
<%= render :partial => 'shared/sidebar' %>
</div>
<div class="span4" id="overview">
<%= render :partial => 'overview' %>
</div>
<div class="span6" id="detailed">
<%= render :partial => 'nothing' %>
</div>
_overview.html.erb,其中i:
<h2>Messages</h2>
UNREAD:
<%= render :partial => 'items', :collection => @task.find_all{|item| item.unread == true }.sort_by(&:created_at).reverse, :as => :item %>
READ:
<%= render :partial => 'items', :collection => @task.find_all{|item| item.unread == false }.sort_by(&:created_at).reverse, :as => :item %>
_items.html.erb:
<%= div_for item do %>
<%= link_to(network_message_path(@network, item), :remote => true, :class => ["message item", ("unread" if item.unread == true)]) do %>...<% end %>
<% end %>
该邮件再次包含部分内容,包含完整内容,评论等。邮件加载的代码:
$("#detailed").hide().html("<%= j(render('show_message', :message => @message)) %>").fadeIn('fast');
如果有人打开详细视图,我会将邮件的未读状态更新为false。如果有人将消息加载到详细信息中,我想重新加载概述部分。一种解决方案是使用jQuery来移动东西,但系统将变得更复杂,有更多的过滤选项。因此,重新加载概述部分将是一个更简单的解决方案。但这样做的方法是什么?因为我需要在网络控制器中重新加载show方法,同时在消息控制器中加载show方法。
除了jQuery之外,什么是最好的解决方案?
答案 0 :(得分:0)
创建一个模块,用ajax加载概述部分。