添加具有Active Concern的实例方法和常规ruby模块之间的区别



添加带有活动关注点的实例方法和在模块上添加普通的ruby def关键字有什么区别?

module MonsterConcern
  extend ActiveSupport::Concern
  included do
    def engage_rage
    end
    def chew_bones
    end
  end
end

module MonsterConcern
  def engage_rage
  end
  def chew_bones
  end
end

据我所知,如果您唯一感兴趣的是实例方法,则没有区别。

ActiveSupport::Concern的优点是能够定义类方法,并更好地处理一些令人讨厌的模块相关性(与在included块中调用类方法有关)。

您可以在此处阅读更多信息:http://api.rubyonrails.org/classes/ActiveSupport/Concern.html

最新更新