[英]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.