组织控制器

时间:2014-04-29 18:43:39

标签: ruby-on-rails

如果我有这些路线:

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过滤器重定向未登录的用户。

1 个答案:

答案 0 :(得分:0)

你应该像现在一样保留它们,在ApplicationController上添加方法,并在每个控制器上添加before_filter。你不需要在每个控制器上重复这个方法,只需要before_filter调用,因为你可能不希望过滤器应用于每个操作,所以你可以在每个控制器上自定义它。

我认为你滥用继承,帖子没有继承主题,主题有很多帖子,应该在模特而不是控制器中指定。