将路由添加到多个资源的基本URL

时间:2012-08-14 18:14:19

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

在Ruby on Rails中,有没有办法将另一个RESTful动作添加到复数资源的基本URL?我正在寻找这样的东西:

resources :groups do
  resources :users do
    put on: :base, to: 'users#update_all'
  end
end

哪会产生路线:[PUT] groups/:group_id/users => users#update_all

我已经尝试过这样做了:

resources :groups do
  resources :users
  put 'users', on: :member, to: 'users#update_all'
end

但这并不能保留控制器中params[:group_id]的值。

1 个答案:

答案 0 :(得分:1)

resources :users do
  collection do
    put '' => 'users#update_all' ## PUT /users
  end
end

<强>更新

建议这样做:

resources :users do
  collection do
    put 'update_all' ## PUT /users/update_all
  end
end

两者都路由到用户控制器的update_all操作。

<强>资源