[英]Bound Parameters in Ruby on Rails
我之前也曾問過一個與此主題有關的問題,借助這個問題,我找到了我想要的名稱:“ 綁定參數 ”。
通過添加一個成員到routes.rb
我設法創建了一個類似於“ user /:id / routes.rb
”的routes.rb
。 但是,這種URL並不是我一直在尋找的解決方案。
我的問題是,您如何提供'user / dosomething /:id'來匹配以id
為參數發送的操作用戶的dosomething
操作?
3.1綁定參數
設置常規路由時,需要提供一系列符號,Rails會將它們映射到傳入HTTP請求的一部分。 其中兩個符號是特殊的::
:controller
映射到應用程序中控制器的名稱,而:action
映射到該控制器內的操作的名稱。 例如,考慮以下路線:get ':controller(/:action(/:id))'
如果此路由處理了
/photos/show/1
的傳入請求(因為它與文件中的任何先前路由都不匹配),那么結果將是調用PhotosController
的show動作,並進行最終處理參數"1"
可用作params[:id]
。 此路由還將/photos
的傳入請求路由到PhotosController#index
,因為:action
和:id
是可選參數,用括號表示。
您可以添加自定義路線:
get 'user/doesomething/:id' => 'users#do_something', :as => 'do_something_user'
這會將與URL user/dosomething/:id
匹配的HTTP GET
請求路由到UsersController
的do_something
操作。 :as => 'do_something_user'
部分為路由命名,因此您可以使用do_something_user_path
和do_something_user_url
幫助程序來生成URL。
有關布線的更多信息,請參見從外部進入Rails布線 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.