将参数传递给redirect_to(@post)

时间:2012-10-19 19:36:44

标签: ruby-on-rails ruby ruby-on-rails-3

从我的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

2 个答案:

答案 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!"