在Rails中的块中包装路由

时间:2013-08-28 07:57:37

标签: ruby-on-rails

我在Rails 3.2中有以下内容:

  # routes.rb
  resources :versions, only: :show
  post 'versions/:id/revert' => 'versions#revert', :as => 'revert_version'

我试图把它包装到

  # routes.rb
  resources :versions, only: :show do
    post 'versions/:id/revert' => 'versions#revert', :as => 'revert_version'
  end

但它不起作用。我应该如何将其包裹在一个区块中,或者我最好不要将其保留原样?

2 个答案:

答案 0 :(得分:5)

尝试

resources :versions, only: [:show] do
   post :revert, on: :member, as: 'revert'
end

答案 1 :(得分:1)

你可以这样做:

resources :versions, only: :show do
    post ':id/revert' => 'versions#revert', :as => 'revert_version'
end

然后,您可以使用rake routes

在控制台中检查您的路线

然而,第一种选择没有真正的进展。 有关详细信息,请参阅Ruby on Rails Guides: Rails Routing from the Outside In