Rails 在 routes.rb 中合并成员和集合

Rails combine member & collection in routes.rb

我正在尝试在对话路径中合并集合和成员。但是我想不通,

resources :conversations, only: [:index, :show, :destroy] do

  member do
    post :reply
    post :restore
  end
end

和;

resources :conversations, only: [:index, :show, :destroy] do
  collection do
    delete :empty_trash
  end
end

当我把它们组合在一起时,它不起作用,显然这个也是错误的!。

membercollection 合并到 resources 块中。像这样,

resources :conversations, only: [:index, :show, :destroy] do
  member do
    post :reply
    post :restore
  end
  collection do
    delete :empty_trash
  end
end

或者你也可以这样组合,

resources :conversations, only: [:index, :show, :destroy] do
  post :reply, on: :member
  post :restore, on: :member
  delete :empty_trash, on: :collection
end

试试这个

resources :conversations, only: [:index, :show, :destroy] do
  member { 
    post :reply
    post :restore 
  }       
  collection {
     delete :empty_trash
  }   
end