2013-01-22 19 views
1

好吧,我有種理解這一部分:CRUD動詞和行動http://guides.rubyonrails.org/routing.html#crud-verbs-and-actions怎麼Rails的生成,從我們的模型和控制器這條道路

,如果我去我的例子中的路由文件,我也看到了資源:其中訂單

但現在在_carts我看到這個代碼的部分名稱的看法:

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

什麼讓我困惑的是new_order_path?那個是從哪裏來的? Rails的慣例規則是否允許我們糾正這個問題?特別是那個「新」來自哪裏?

回答

1

當您在路由中使用resources :orders時,Rails會爲新建,創建,顯示,更新,銷燬,列表和編輯創建7個路由。所有這些都給出了名稱,並且new_order_path/new_order_url與新操作相關。

這些路線在http://guides.rubyonrails.org/routing.html#paths-and-urls

1

描述這些路徑傭工automatically generated for resourcesroutes.rb定義。您可以通過在命令行執行rake routes來檢查哪些路由助手可用。它們顯示在打印出的表格的最左側的列中。

所創建的路徑的一般模式是像這樣通過默認:

  • new_ {資源的單數形式} _path - 路線到new上GET
  • edit_ {的單數形式資源} _path - 路線:edit對GET
  • {資源的單數形式} _path - 路線:show上GET,destroy上DELETE,update上PUT(不久將在導軌4 PATCH)
  • _path {資源的複數形式} - 路由到index上GET和create上POST。

還有一些幫助程序以_url而不是_path結束,它們提供絕對URL而不是相對路徑。控制器中的特定動作取決於訪問這些URL時使用的HTTP動詞(GET,PUT,POST,DELETE等)。