4

我在The Rails 3 Way一书中看到了一个例子,它说

redirect_to post

这是否有一些特殊含义post,或者如果它只是一个示例的糟糕选择,并且post它只是一个域对象并且它正在重定向到该对象的 url。

4

3 回答 3

8

我需要查看完整的示例以获得完整的答案,但我的猜测是作者只是选择了“发布”作为其中一个模型的名称,并没有意识到这可能会导致读者对 POST 操作感到困惑。

作为 HTTP 协议 ( http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html ) 的一部分,您实际上无法重定向到 POST 操作。或者,更明确地说,您使用重定向调用的任何目标都需要使用 GET 方法返回。

希望有帮助!

于 2012-09-08T03:17:29.353 回答
1

查看Rails 路由指南,然后应该清楚为什么可以。

此外,如果您想查看应用程序运行的路线:

cd path/to/your/app
rake routes

这将列出您的应用程序中可用的路线。

于 2012-09-08T00:53:54.070 回答
0

你需要一个 Post 资源和 config/routes.rb 中的相应路由

例如,只需执行“rails g resource post title:string content:text”即可生成一个。“redirect_to post”中的路由是动态处理的。Post“post”的实例作为redirect_to方法的参数传入,导致页面重定向到posts#show操作并传递该Post实例的:id。这是“轨道魔法”

于 2012-09-09T01:09:31.587 回答