2008-10-15 85 views
4

是否可以重新加載通過link_to_remote加載的頁面?我在我的控制器這樣做:
link_to_remote與渲染

def create 
if captchas_verified 
    do_something 
else 
    render :action=>'new' 
end 

但是,當驗證碼是錯誤的,它不會使一個形式,是新的模板內。順便說一下,在網絡服務器日誌中,它顯示了模板已經渲染。

謝謝!

更新:今天我改變了渲染到:

render(:update) { |page| page.call 'location.reload' } 

但它讓我更新稱爲link_to_remote不是打開直通的link_to_remote

更新2頁頁:我上的使用 page.replace_html 「mydiv」:部分=> 「新」 的,而不是 page.call 'location.reload'

回答

4

您需要render :update而不是render :action

我一直都在做這種事情。類似於jdl的響應,您可以使用內聯rjs(不知道這是否是正確的術語)來呈現頁面。

render(:update) do |page| 
    page.replace_html("div_to_update", :partial => "name_of_template", :object => @object) 
    page << "alert('javascript can be inserted here as well')" 
end 
1

像這樣的東西應該做你想要什麼。

render :update do |page| page << 'window.location.reload()' end