I want to create a module which provides some common methods to the classes which are inherited from active record base.
Following is the two-way we can achieve it.
1)
module Commentable
def self.extended(base)
    base.class_eval do
        include InstanceMethods
        extend ClassMethods
    end
end
module ClassMethods
    def test_commentable_classmethod
        puts 'test class method'
    end
end
module InstanceMethods
    def test_commentable_instance_method
        puts 'test instance method'
    end
end
end
ActiveRecord::Base.extend(Commentable)
2)
module Commentable
def self.included(base)
    base.extend(ClassMethods)
end
module ClassMethods
    def test_commentable_classmethod
        puts 'test class method'
    end
end
def test_commentable_instance_method
    puts 'test instance methods'
end
end
ActiveRecord::Base.send(:include, Commentable)
Which one is the preferred way to handle this?
And
What to use when?
 
     
     
    