我可以将ActiveSupport :: Concern对象用作帮助程序以及扩展控制器功能

时间:2016-01-15 01:16:20

标签: ruby-on-rails ruby

我有为用户权限返回true / false的函数(基本上是某些会话变量的包装器)。我希望可用的功能在视图层中以及控制器中构建菜单。这样做有什么缺点吗? (以下示例)

module SecurityPermissions
  extend ActiveSupport::Concern

  def has_this_permissions

  end
end

class ApplicationController < ActionController::Base
  include SecurityPermissions
  helper SecurityPermissions
end

1 个答案:

答案 0 :(得分:0)

虽然在视图层和控制器中添加所有内容很诱人,但仍建议您不要这样做。我们的想法是,视图不应该关注逻辑。尽可能地,视图应该只呈现一些东西。使用装饰器或页面对象将帮助您从视图上下文中抽象出来。

至于控制器,对服务取出“动作”逻辑将是我最喜欢的简化一切的方法。控制器不应该关注模型应该如何更新,而是应该更新什么。