2013-05-27 73 views
0

我有一個應用程序,其中我不同的網絡有消息。如何Ajax從部分重新加載部分

在我的網絡節目視圖中,我用部分「概覽」顯示所有消息,其中顯示了消息內容的鏈接。該消息的內容被加載#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

創建了一個模塊,用ajax加載部分概覽。