link_to_remote与渲染

时间:2008-10-15 16:22:43

标签: ruby-on-rails

是否可以重新加载通过link_to_remote加载的页面?我在我的控制器中这样做:

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

但是当验证码错误时,它不会渲染新模板内的表单。顺便说一下,在webserver日志中,它显示了templades已呈现。

谢谢!

更新:今天我将渲染更改为:

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

但它让我更新了调用link_to_remote的页面而不是通过link_to_remote打开的页面

更新2:我修复了使用     page.replace_html“mydiv”,:partial => “新” 代替     page.call'location.reload'

2 个答案:

答案 0 :(得分: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 :(得分:1)

这样的事情应该做你想做的事。

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