0

我之前也问过一个与此主题相关的问题,借助该问题,我找到了我想要的名称:“<strong>bound parameters”。

我设法通过向routes.rb. 但是,这种类型的 URL 不是我正在寻找的解决方案。

我的问题是,您如何提供'user/dosomething/:id' 以匹配作为参数发送的动作用户的dosomething动作?id

这是为了了解这个想法而阅读的部分:

3.1 绑定参数

当您设置常规路由时,您需要提供一系列符号,Rails 将这些符号映射到传入的 HTTP 请求的一部分。其中两个符号是特殊的::controller映射到应用程序中的控制器名称,以及:action映射到该控制器中的操作名称。例如,考虑这条路线:

get ':controller(/:action(/:id))'

如果这个路由处理了传入的请求/photos/show/1(因为它没有匹配文件中任何先前的路由),那么结果将是调用 的 show 操作,PhotosController并使最终参数"1"作为params[:id]. 该路由还将路由到的传入请求/photosPhotosController#index因为:action:id是可选参数,用括号表示。

4

1 回答 1

1

您可以添加自定义路由:

get 'user/doesomething/:id' => 'users#do_something', :as => 'do_something_user'

GET这会将与 URL 匹配的 HTTP 请求路由user/dosomething/:idUsersController'sdo_something操作。该:as => 'do_something_user'部分命名路由,以便您可以使用do_something_user_pathdo_something_user_url帮助器来生成 URL。

有关路由的更多信息,请参阅Rails Routing from the Outside In

于 2012-09-10T07:31:46.717 回答