如何解决Rails 3.0.8“ redirect_to”-控制台表示已渲染视图,但浏览器保持静态
| 更新方法正在保存数据,但是重定向无法在浏览器中呈现。 控制器:def update
fbc = FbComments.find(params[:id])
if fbc.update_attributes(params[:fb_comments])
session[:report_for] = current_user
redirect_to userhome_index_path
end
end
安慰:
Rendered userhome/_feedback_receive_list.html.erb (2.2ms)
Rendered userhome/_applet.html.erb (1.2ms) ...
Rendered userhome/_feedback_give_list.html.erb (1.2ms)
Rendered userhome/index.rhtml within layouts/user_app (9.1ms)
如您所见,控制台表示视图正在渲染,包括部分视图,但实际上,浏览器保留在带有表单的页面上。在Safari,Firefox或Chrome中结果相同。我似乎还记得读过一些有关Rails 3.0.8问题的信息,该问题未在重定向上呈现视图,但我不记得在哪里或为什么。我仍在研究...有人知道问题出在哪里吗?
谢谢。
笔记:
我在下面用dpb的建议更新了控制器。然后遵循下面的krohrbaugh和dpb的注释,这些注释消除了406错误。上面的控制器代码已使用其建议进行了更新。
实验中,我将重定向URL更改为休息前格式,但结果相同,因此我将其改回了原来的格式。数据仍在更新,但重定向仍未呈现。
解决方法
如果您要指定一种格式,则需要一个response_to块。这应该工作:
def update
respond_to do |format|
fbc = FbComments.find(params[:id])
if fbc.update_attributes(params[:fb_comments])
session[:report_for] = current_user
format.html { redirect_to(root_path,:notice => \'Feedback was successfully updated.\') }
end
end
end
另外,如果您只想支持html,则可以将format.html放在一起,如下所示:
def update
fbc = FbComments.find(params[:id])
if fbc.update_attributes(params[:fb_comments])
session[:report_for] = current_user
redirect_to(root_path,:notice => \'Feedback was successfully updated.\')
end
end
您可能还希望添加else语句,以防更新失败。然后,您可以通过重定向或渲染另一个视图来优雅地处理它。
, 我遇到了同样的问题,结果表格仍然有旧的remote: true
。我将其删除并解决了。
, 我对销毁也有同样的问题。由脚手架生成的控制器具有对象\'rights \'的redirect_to rights_url。 Rails服务器说Rendered ... 200 OK,但是应该渲染的页面没有出现在浏览器中。嗯
因此,作为测试,我注释掉了response_to块,然后让控制器通过。然后服务器说ActionView :: MissingTemplate(缺少模板权限/破坏,带有{:locale => [:en,:en],:formats => [:js,...],...)。
啊哈!它正在寻找:js响应。因此,我创建了包含以下代码段的views / rights / destroy.js.erb:
alert(\"<%= flash[:msg] %>\")
window.location.href=\"/\"
销毁控制器将消息填充到闪存中,警报将显示。然后返回到主页。似乎工作正常。
清理掉控制器以明确地说出它可能是一种很好的形式,而不只是简单地进行学习
respond_to :js
, 我试图重定向到localhost:3000。在前面添加http://使其成为http:// localhost:3000可以达到目的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。