2012-04-28 63 views
0

在我的控制器中,我使用了渲染更新,但我只想在div元素(如果存在)時更新。 爲了檢查是否div元素存在,我使用page.select但它不與任何迴應,沒有錯誤或輸出,這裏是我的代碼無法在控制器內渲染更新中使用`page.select`

def post_update 
render :update do |page| 
    page.replace_html('div_id':partial=>'my_partial') unless page.select("#div_id").blank? 
    end 
end 

是有什麼我在這裏失蹤?

回答

1

你不能在rjs中使用類似ruby的條件:那就是「除非」和page.select在你的服務器上執行並且不知道DOM的內容是什麼。

我曾經寫過一個blog post用幾種方法來處理這個問題。短版本可能是「根據您的條件生成JavaScript片段」。這些天我會遠離rjs:呈現json或HTML,並在頁面上有一些知道如何處理它的JavaScript。

+0

@Frederick_Cheung所以沒有辦法從我的控制器訪問javascript元素? – 2012-04-28 07:38:31

+0

沒有。這些信息並不在那裏(除非你開始傳遞額外的參數來滿足你所需要的信息) – 2012-04-28 07:42:57