我有为用户权限返回true / false的函数(基本上是某些会话变量的包装器)。我希望可用的功能在视图层中以及控制器中构建菜单。这样做有什么缺点吗? (以下示例)
module SecurityPermissions
extend ActiveSupport::Concern
def has_this_permissions
end
end
class ApplicationController < ActionController::Base
include SecurityPermissions
helper SecurityPermissions
end
答案 0 :(得分:0)
虽然在视图层和控制器中添加所有内容很诱人,但仍建议您不要这样做。我们的想法是,视图不应该关注逻辑。尽可能地,视图应该只呈现一些东西。使用装饰器或页面对象将帮助您从视图上下文中抽象出来。
至于控制器,对服务取出“动作”逻辑将是我最喜欢的简化一切的方法。控制器不应该关注模型应该如何更新,而是应该更新什么。