I read the API for ActiveSupport::Concern. There are ClassMethods
and InstanceMethods
, we can put class methods in ClassMethods
.
But the M
's host can use the methods defined in M
, can't it? Why can't I just write:
module M
def self.x
end
def y
end
end
rather than:
module M
module ClassMethods
def x
end
end
module InstanceMethods
def y
end
end
end
You might be interested in Yehuda's take on this pattern . I think the reason for some of it is historical, since they're not really needed unless you're doing manually what Ruby will do automatically through include
and extend
.
Dependencies are taken care of. See the example provided here .
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.