我使用私人酒吧,这是一个建立在Faye之上的宝石,通过我的控制器进行实时更新。如果Faye服务器无法提供服务,我很难能够为实时更新渲染做出后备。
如果我的第一个渲染方法失败了,有没有解决这种情况并第二次渲染?
以下是我的create
操作:
def create
#assigning objects and such happening here
begin
LiveAjaxRender(@comment)
rescue => exception
ExceptionNotifier.notify_exception(exception)
normalAjaxRender(@comment)
end # end rescue
end
通常在发生错误时,它应该转到第二个块并忽略第一个块。虽然在这里它并不是因为它说:
AbstractController::DoubleRenderError
中发生user_comments#create
:
在此操作中多次调用渲染和/或重定向。 请注意,您最多只能调用渲染或重定向 每次行动一次。另请注意,重定向和渲染都不会终止 执行动作,所以如果你想在之后退出动作 重定向,你需要做类似" redirect_to(...)和 返回&#34 ;. app / controllers / my_controller.rb130:在`block中 (2级)在normalAjaxRender'
答案 0 :(得分:0)
为了避免渲染的冗余,这就是我所做的:
将normalAjaxRender()
方法设为默认值,并在JS
文件中添加rescue
和liveupdate