如果我有这些路线:
resources :forums do
resources :topics do
resources :posts
end
end
这些感觉非常无组织:
app/controllers
|
|-> forums_controller.rb
|-> topics_controller.rb
|-> posts_controller.rb
是否有可能以某种方式嵌套控制器文件,因此帖子是"内部"主题和主题是"内部"论坛?路线怎么样?
我可以轻松管理这些控制器吗?让我们说论坛完全禁止所有未登录的人。如果current_user为零,我是否可以创建一个方法将所有请求重定向到论坛控制器,主题控制器和帖子控制器?现在我的应用程序中的所有这三个控制器都有这些方法。也许我可以让论坛从ApplicationController继承,但主题可以从论坛继承,帖子从主题继承?然后论坛可以有一个,before_action过滤器重定向未登录的用户。
答案 0 :(得分:0)
你应该像现在一样保留它们,在ApplicationController上添加方法,并在每个控制器上添加before_filter。你不需要在每个控制器上重复这个方法,只需要before_filter调用,因为你可能不希望过滤器应用于每个操作,所以你可以在每个控制器上自定义它。
我认为你滥用继承,帖子没有继承主题,主题有很多帖子,应该在模特而不是控制器中指定。