2010-12-23 69 views
1

我正在學習Ruby on Rails,對於我的應用程序的控制器 - 模型 - 視圖關係如何工作,我感到非常困惑。RoR-如何使用div onclick在頁面的單獨區域渲染結果?

我現在所擁有的是一張滿載用戶評論(帖子)的表格。我想要做的是讓用戶點擊評論以在單獨的面板中查看更多信息(即其他數據庫字段最初未顯示,例如發佈評論的人的user_id)。

在我_post.html.erb,我有這樣的:

<div class="post" id="<%= post.post_id %>" onclick = ?? > 
<p>post.text</p></div> 

應該去什麼的onclick?我需要一種方法讓onclick調用可以加載更多信息的幫助程序/控制器方法,然後將其放入另一個div中的頁面上(我嘗試過使用控制器和幫助程序來調用JavaScript,將html插入到網站,但似乎比它應該更混亂)。根據我的理解,我應該創建一些處理html實際顯示的部分_postdetails.html.erb文件,但我不知道如何指定部分在頁面中的位置。

任何幫助將不勝感激,謝謝!

回答

2

你可以通過使用Rails助手或者自己編寫AJAX調用來實現你想要的。

我個人使用jQuery手動編寫我所有的AJAX調用。 您也可以使用隨Rails提供的Prototype

這就是說你可以做。

在您的JS文件:

$("div.some-class").click(function() 
{ 
    $.ajax(
    { 
     url:"url/to/controller/action", 
     type:<GET>/<POST>, 
     data://If you wish to sent any payload 
    }); 
}); 

在你的控制器:

def some_action 
    #some computation 
    render :update do |page| 
    page["id_of_div_to_be_refreshed"].replace_html :partial => "some_partial" 
    end 
end