Rails路由:仅包含自定义操作的资源

时间:2013-07-19 10:18:28

标签: ruby-on-rails ruby-on-rails-3 rails-routing restful-architecture

我有一个NotificationsController,其中我只有clear行动。

我想通过POST / notifications / clear

来访问此操作

所以我在路由器中写了这个:

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

有更清洁的方法来实现这一目标吗?我想

  scope :notifications do
    post :clear
  end

会这样做,但我有missing controller错误,因为 - 我认为 - 它会查找clear控制器。

2 个答案:

答案 0 :(得分:18)

如果您使用的是范围,则应添加一个类似于

的控制器
scope :notifications, :controller => 'notifications' do
  post 'clear'
end

或者只使用命名空间

namespace :notifications do
  post 'clear'
end

答案 1 :(得分:1)

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