升级Rails 3中的路由

时间:2013-03-07 16:18:14

标签: ruby-on-rails ruby-on-rails-3.2

目前我有这样的事情:

  resources :books do
    collection do
      get 'search'
    end
  end

我的控制器名称也是“书籍”,我有一个名为“搜索”的动作方法

我希望“获取搜索”部分也是一种资源,有点像嵌套资源...但我不想打破使用此生成的当前路由的其他人员代码,因此需要以被动的方式更新它!

2 个答案:

答案 0 :(得分:1)

resources :books do
  collection do
    get 'search'
  end
  resources :searches
end

...如果我正确地理解你,那应该是你想要的。它不会打破其他路线,只需添加新路线。


运行rake routes以确保您拥有所需/需要的所有路线。

答案 1 :(得分:0)

使用嵌套的浅路线:

resources :books , :shallow => true do
  resources :searches
end

现在您将获得以下路线:

/books/1 => books_path(1)
/books/1/searches => books_searches_index_path(1)
/searches/2 => searches_path(2)

同样,您可以为定义的路线获取单独的路由,例如:

get '(:books)/searches', :to => 'books#index'