Rails的 - 两个控制器或添加动作?
-
16-09-2019 - |
题
设计一个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的而不是重复代码。
不隶属于 StackOverflow