从我的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
答案 0 :(得分:2)
它可能无法正常工作的原因是您要覆盖作为响应的一部分返回的 HTTP状态代码。此状态代码(通过在redirect_to语法中设置:status
设置)将由浏览器用于确定其特定操作。您可以在此处详细了解不同的状态代码W3C HTTP Status Codes。
长话短说,为了成功进行重定向,您需要使用3XX
代码让浏览器查看HTTP响应中的位置标头,并加载其中指定的URL。如果您希望重定向正常工作,可以使用以下语法。
redirect_to @post, :notice => "Post successful"
如果由于某种原因你想手动设置它,你可以这样做:
redirect_to @post, :notice => "Post successful", :status => 301
您还可以使用一些符号来代替数字状态代码,您可以在Rails documentation for redirect_to中阅读这些代码。
答案 1 :(得分:0)
你尝试过使用:
redirect_to post_path , :notice => "Post successful", :status => "Success!"