Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails ActiveSupport::放在包含块内或模块体中的关注代码_Ruby On Rails_Ruby_Ruby On Rails 5_Activesupport Concern - Fatal编程技术网

Ruby on rails ActiveSupport::放在包含块内或模块体中的关注代码

Ruby on rails ActiveSupport::放在包含块内或模块体中的关注代码,ruby-on-rails,ruby,ruby-on-rails-5,activesupport-concern,Ruby On Rails,Ruby,Ruby On Rails 5,Activesupport Concern,假设我有一个带有Base模块的名称空间,该模块定义了一些可以重用的方法 module MyNameSpace module Magic extend ActiveSupport::Concern class_methods do def magic_field(field_name) # Defines methods and attributes based on field name end end end end

假设我有一个带有
Base
模块的名称空间,该模块定义了一些可以重用的方法

module MyNameSpace
  module Magic
    extend ActiveSupport::Concern

    class_methods do 
      def magic_field(field_name)
        # Defines methods and attributes based on field name
      end
    end
  end
end
两者之间有什么区别(如果有的话)


(问题是
include Magic
include
块的外部或内部的区别)

当关注点包含在类中时,
include
class\u方法允许接收类继承这些方法

included
添加实例方法,而
class\u方法
添加类方法

资料来源:


另一方面,如果你的问题是
include Magic
的位置不同,那么类的功能就没有区别。

我不理解否决票是一个有效的问题。是的,我的问题是关于
include Magic
块的外部或内部
module MyNameSpace
  module Foo
    extend ActiveSupport::Concern
    include Magic

    included do
      magic_field(:foo)
    end
  end
end
module MyNameSpace
  module Foo
    extend ActiveSupport::Concern

    included do
      include Magic
      magic_field(:foo)
    end
  end
end