更新到Rails 5.0后,我收到以下错误:
“RegistrationController中的AbstractController :: DoubleRenderError #create
在此操作中多次调用渲染和/或重定向。请注意,您只能调用渲染或重定向,每次操作最多一次。另请注意,重定向和渲染都不会终止操作的执行,因此如果要在重定向后退出操作,则需要执行类似“reditect_to(...)并返回”的操作。“
这是我的代码,在我更新之前有效:
def create
# save record
if params[:stuff].nil?
respond_to do |format|
format.js
end
else
redirect_to root_path
end
end
我尝试了很多不同的语法,例如:
redirect_to(root_path) and return
redirect_to(root_path)
return
return and redirect_to(root_path)
return redirect_to(root_path)
但是一切都返回相同的错误。有人知道正确的语法吗?
答案 0 :(得分:3)
您可能会在显示# save-record
的位置进行渲染或重定向。
试试这个:
gem byebug
,运行bundle
进行安装,然后重新启动Rails byebug
添加到create
方法的开头n
和s
逐步执行以进入其他功能。您可能会注意到渲染或重定向被调用两次答案 1 :(得分:0)
您可以使用performed?来测试或调试双重渲染/重定向。