我正在開發一個Ruby on Rails web應用程序,其中有幾個帖子列表。每篇文章將使用Ajax來加載他們的評論。爲了將它們填充到正確的位置,我正在執行以下操作:Ajax on Rails - 我遇到問題
每個帖子都有一個div,其格式如下:id:<div id="my_div_<%= post.id %>"></div>
。所以,例如,如果post.id是12,那麼id將是「my_div_12」。
我的控制器的動作看起來是這樣的:
render :update do |page|
page.replace_html 'my_div_' + params[:post_id].to_s, :partial => 'my_comments_section_partial_path'
end
這工作正常只有當我在頁面有一個職位只有一次。但在這個網站中,每個帖子可能會被列出不止一次,因爲有幾個列表(最新帖子,流行,上衣等)。他們都將有他們的評論部分顯示。
現在的問題是,由於註釋部分功能在部分視圖內,因此它對每種類型的列表都是一樣的(因爲它是預期的),因此它不會區分div (因爲它們將具有相同的post.id,並且因此具有相同的div的id)。
我現在的問題是:我怎麼能解決這個問題?有沒有更好的和不同的方式來做到這一點?
提前致謝!
編輯:
只是爲了澄清我想要的東西,在幾句話:
我想代碼page.replace_html 'my_div_' + params[:post_id].to_s, :partial => 'my_comments_section_partial_path'
,以取代部分中EVERY DIV稱爲'my_div' + params[:post_id].to_s
(因爲有可能是在同一個頁面上使用相同的ID的多個div)。
你的控制器是什麼樣的?你說所有的div都有相同的ID? – Trip 2010-09-21 21:37:46
你想解決什麼問題?給定的帖子將始終具有與顯示在另一個小部件(或任何地方)中的相同帖子相同的評論。 – Eric 2010-09-21 22:46:36
我已經在同一頁面的同一篇文章中找到了更多的地方。現在,每個帖子都有一個「註釋」部分,當單擊「顯示評論」按鈕時,顯示(和加載)部分。在上面發佈的控制器的操作中,我用帖子的評論替換了部分評論的div。所以,這將被替換爲只有一個div(我有一個具有相同ID的div,每個帖子使用相同的id。例如:我在頁面中顯示#2兩次,然後我會有兩個divs與id =「div_post_2」)。所以,我想用相同的ID替換每個div中的評論結果。 – 2010-09-22 15:13:20