设计一个Web应用程序具有管理部分和一个面向公众的部分。这感觉就像有一个面向公众的控制器,只为“指数”和“秀”是有点多余。我所读过的建议建议为管理员命名空间,这是罚款。我只是想知道我是否应该有一个控制器与另外的动作,说:“list_public”或类似的东西。

我是新使用Rails,所以也许我只是关心什么。我只是不喜欢与各地分散我的项目目录同名的所有这些控制器,视图助手的想法。

任何人有任何见解呢?由于事先。

有帮助吗?

解决方案

我要说具有两个控制器(一个公共的,和一个管理员)是最好的解决方案。

现在,你可以做的是有两个控制器调用,它在行动相关行动的方法相同。

class MyController < ApplicationController
  def show
    MyModel.do_all_sorts_of_stuff
  end
end

class Admin::MyController < ApplicationController
  def show
    MyModel.do_all_sorts_of_stuff
    # Admin only stuff goes here
  end
end

其他提示

由于马特说,但你也可以这样做:

class MyController < ApplicationController
  def show
    MyModel.do_all_sorts_of_stuff
  end
end

class Admin::MyController < MyController
  def show
    super
    # Admin only stuff goes here
  end
end

这意味着,你可以专注于更专业的情况下,为联系:: myController的而不是重复代码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top