gpt4 book ai didi

ruby-on-rails-3 - Rails 3.0.8 "redirect_to"- 控制台显示 View 已呈现但浏览器保持静态

转载 作者:行者123 更新时间:2023-12-04 06:55:01 24 4
gpt4 key购买 nike

更新方法正在保存数据,但重定向无法在浏览器中呈现。

Controller :

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)

如您所见,控制台显示 View 正在呈现,包括其局部 View ,但实际上浏览器仍保留在带有表单的页面上。 Safari、Firefox 或 Chrome 中的结果相同。我似乎记得读过一些有关 Rails 3.0.8 问题的文章,该问题未在重定向上呈现 View ,但我不记得在哪里或为什么。我仍在研究中...有人知道问题出在哪里吗?

谢谢。

注意事项:

我根据下面 dpb 的建议更新了我的 Controller 。然后跟随 krohrbaugh 和 dpb 下面的评论摆脱了 406 错误。上面的 Controller 代码根据他们的建议进行了更新。

实验,我将重定向 url 更改为预休息格式,但结果是一样的,所以我将其改回。数据仍在更新,但重定向仍未呈现。

最佳答案

如果您要指定一种格式,则需要一个 respond_to block 。这应该有效:

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 语句以防更新失败。然后您可以通过重定向或呈现另一个 View 来优雅地处理它。

关于ruby-on-rails-3 - Rails 3.0.8 "redirect_to"- 控制台显示 View 已呈现但浏览器保持静态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6337161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com