Маршрутизация Rails: ресурсы только с настраиваемыми действиями

У меня есть NotificationsController, в котором у меня есть только действие clear.

Я хотел бы получить доступ к этому действию, выполнив POST/уведомления/очистить

Поэтому я написал это в своем маршрутизаторе:

  resources :notifications, :only => [] do
    collection do
      post :clear
    end
  end

Есть ли более чистый способ достичь этого? я думал

  scope :notifications do
    post :clear
  end

сделаю это, но у меня есть missing controller ошибка missing controller, потому что - я думаю - он ищет clear контроллер.

Ответ 1

Если вы используете область видимости, вы должны добавить, что контроллер выглядит

scope :notifications, :controller => 'notifications' do
  post 'clear'
end

Или просто используйте пространство имен

namespace :notifications do
  post 'clear'
end

Ответ 2

post "notifications/clear" => "notifications#clear"