2008-10-15 87 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