0

从我的 Rails 控制器,以create我想做的方法

redirect_to @post(:notice => "Post successful', :status => "Success!")

show.html.erb并通过使用<%= notice %>和访问参数<%= status %>

但它不起作用。我该如何解决?

routes.rb文件:

Archive::Application.routes.draw do
  resources :posts
  root :to => "Posts#new"
end
4

2 回答 2

2

它可能不起作用的原因是您正在覆盖作为响应的一部分返回的HTTP 状态代码。此状态代码通过设置:statusredirect_to 语法设置,浏览器使用它来确定它的特定操作。您可以在此处阅读有关不同状态代码的更多信息W3C HTTP 状态代码

长话短说,为了成功进行重定向,您需要有一个3XX代码供浏览器查看 HTTP 响应中的位置标头,并加载那里指定的 URL。如果您希望重定向正常工作,可以使用以下语法。

redirect_to @post, :notice => "Post successful"

如果由于某种原因你想手动设置它,你可以这样做:

redirect_to @post, :notice => "Post successful", :status => 301

您还可以使用一些符号来代替数字状态代码,您可以在Rails 文档中了解 redirect_to的相关信息。

于 2012-10-19T23:06:01.227 回答
0

您是否尝试过使用:

redirect_to post_path , :notice => "Post successful", :status => "Success!"
于 2012-10-19T19:53:59.683 回答