如何使资源重定向到rails中的另一个控制器

时间:2014-08-13 18:03:23

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

我有两个模型:BookMagazine。在属性方面几乎没有差异,但我希望它们共享相同的控制器和视图(Book&#39的模型)。

我的问题是:在routes.rb中设置Magazine模型路线的正确方法是什么,考虑到Book已经设置为以下resources :books

这是一个基本问题,但我想学习最好的方法,而不是逐个手动定义所有路线

谢谢!

2 个答案:

答案 0 :(得分:4)

您可以将资源路由配置为指向特定控制器:

resources :books
resources :magazines, controller: 'books'

这将创建以下路线:

                             books GET    /books(.:format)                              books#index
                                   POST   /books(.:format)                              books#create
                          new_book GET    /books/new(.:format)                          books#new
                         edit_book GET    /books/:id/edit(.:format)                     books#edit
                              book GET    /books/:id(.:format)                          books#show
                                   PATCH  /books/:id(.:format)                          books#update
                                   PUT    /books/:id(.:format)                          books#update
                                   DELETE /books/:id(.:format)                          books#destroy
                         magazines GET    /magazines(.:format)                          books#index
                                   POST   /magazines(.:format)                          books#create
                      new_magazine GET    /magazines/new(.:format)                      books#new
                     edit_magazine GET    /magazines/:id/edit(.:format)                 books#edit
                          magazine GET    /magazines/:id(.:format)                      books#show
                                   PATCH  /magazines/:id(.:format)                      books#update
                                   PUT    /magazines/:id(.:format)                      books#update
                                   DELETE /magazines/:id(.:format)                      books#destroy

答案 1 :(得分:0)

还要考虑一些多态关系,我认为最终你最终会得到这个。