如何在另一个控制器作用域内创建控制器作用域?

3

我有一个名为status的控制器,其中有许多方法,例如firstsecond等等。

所以,我的routes.rb文件看起来像这样:

scope 'status', controller: :status do
  get 'first'
  get 'second'
  # and so on
end

我也有一个路径,应该看起来像 '/status/states':
scope :status do
  resources :states
end

如何将这些作用域合并到一个作用域中,以使用DRY和简洁的代码?
1个回答

3
  resource :status, only: [], controller: :status do
    resources :states
    collection do
      get 'first'
      get 'second'
      get 'third'
    end
  end

我会为你提供以下内容:

       status_states GET    /status/states(.:format)          states#index
                     POST   /status/states(.:format)          states#create
    new_status_state GET    /status/states/new(.:format)      states#new
   edit_status_state GET    /status/states/:id/edit(.:format) states#edit
        status_state GET    /status/states/:id(.:format)      states#show
                     PATCH  /status/states/:id(.:format)      states#update
                     PUT    /status/states/:id(.:format)      states#update
                     DELETE /status/states/:id(.:format)      states#destroy
        first_status GET    /status/first(.:format)           status#first
       second_status GET    /status/second(.:format)          status#second
        third_status GET    /status/third(.:format)           status#third

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接