web-dev-qa-db-ja.com

Railsルーティング:カスタムアクションのみのリソース

NotificationsControllerがあり、アクションclearしかありません。

POST/notifications/clearを実行してこのアクションにアクセスしたい

だから私はこれを私のルーターに書いた:

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

これを達成するためのよりクリーンな方法はありますか?私は思った

  scope :notifications do
    post :clear
  end

実行しますが、missing controllerエラーが発生します。これは、-私が思うに-clearコントローラーを検索するためです。

18

スコープを使用している場合は、次のようなコントローラーを追加する必要があります

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

または、名前空間を使用します

namespace :notifications do
  post 'clear'
end
20
rails_id
post "notifications/clear" => "notifications#clear"
1
yxf