在Rails 3中路由自定义操作

Ben*_*rel 4 ruby-on-rails ruby-on-rails-3

我有一个非常简单的问题.试图弄清楚在rails 3中路由自定义操作的最简单方法是什么.

假设我有控制器UsersController和动作promote_to_premium

也不

http://localhost:3000/users/#{user_id}/promote_to_premium  
Run Code Online (Sandbox Code Playgroud)

也不

http://localhost:3000/users/promote_to_premium/#{user_id}
Run Code Online (Sandbox Code Playgroud)

作品.

我应该在routes.rb中指定每个与new/delete/update/create/ect/....不同的自定义操作吗?

谢谢.

Mur*_*foX 22

是的,您需要在routes.rb中指定.
例:

resources :users do
  member do
    post :promote_to_premium
  end
end
Run Code Online (Sandbox Code Playgroud)

这样你就可以像这样访问这条路线:

http://localhost:3000/users/#{user_id}/promote_to_premium
Run Code Online (Sandbox Code Playgroud)