Rails是如何从我们的模型和控制器生成此路径的

时间:2013-01-22 05:57:00

标签: ruby-on-rails routes

好的我理解这一部分:CRUD动词和动作http://guides.rubyonrails.org/routing.html#crud-verbs-and-actions

如果我转到我所拥有的示例的路径文件,我还会在其中看到资源:订单

但现在在部分名称_carts的视图中我看到了这段代码:

<%= button_to "Checkout" , new_order_path, method: :get %>

让我感到困惑的是 new_order_path ?那个是从哪里来的?什么Rails惯例规则允许我们纠正这个?特别是“新”来自哪里?

2 个答案:

答案 0 :(得分:1)

在路由中使用resources :orders时,Rails会为新建,创建,显示,更新,销毁,列表和编辑创建7条路由。所有这些都是名称,new_order_path / new_order_url与新操作相关。

http://guides.rubyonrails.org/routing.html#paths-and-urls

描述了这些路线

答案 1 :(得分:1)

routes.rb中定义的automatically generated for resources路径助手为{{3}}。您可以通过在命令行执行rake routes来检查可用的路由助手。它们显示在表格中最左侧的列中。

默认情况下,创建的路径的一般模式是这样的:

  • new_ {奇异形式的资源} _path - 在GET上路由到new
  • edit_ {奇异的资源形式} _path - 在GET上路由至edit
  • {资源的单一形式} _path - 路由到GET上的show,DELETE上的destroy,PUT上的update(很快将成为Rails中的PATCH) 4)
  • {复数形式的资源} _path - 路由到GET上的index和POST上的create

还有以_url而不是_path结尾的助手提供绝对网址而不是相对路径。控制器中遇到的特定操作取决于访问这些URL时使用的HTTP谓词(GET,PUT,POST,DELETE等)。