当我已经拥有'资源:用户'时,如何添加新路由

时间:2011-04-24 15:20:08

标签: ruby-on-rails ruby-on-rails-3

在我的routes.rb文件中,我有:

resources :users

我现在在我的控制器中添加了一个名为add_blah

的新操作

所以我尝试了这个:

resources :users do
  member do
    post 'add_blah'
  end
end

这个新方法'add_blah'仅用于POST。

def add_blah
  render :text => 'testing...'
end

我收到404错误。

我做错了什么?

3 个答案:

答案 0 :(得分:4)

您需要使用集合。对于会员,我认为它使用的是users/:id/add_blah路线。检查您的rake routes

resources :users do
  collection do
    post 'add_blah'
  end
end

将使用users/add_blah路线。

答案 1 :(得分:2)

resources :users do
  post 'add_blah', :on => :collection
end

这是嵌套集合/成员块变体的一个较短版本。

答案 2 :(得分:0)

如果在路由文件中将post 'users/add_blah' => 'users#add_blah'添加到resources :users以上,则只允许HTTP POST。这是你在找什么?