我想在方法调用时动态添加类方法acts_as
。我的文件结构如下所示(取自http://guides.rubyonrails.org/plugins.html):
module ActsAsFoo
extend ActiveSupport::Concern
included do
end
module ClassMethods
def acts_as_foo(options = {})
include ActsAsFoo::LocalInstanceMethods
end
end
module LocalInstanceMethods
def instance_method
# This method works without any issue
end
end
end
class Bar
acts_as_foo
end
我希望能够仅在类调用时声明类方法acts_as_foo
。实例方法适用于LocalInstanceMethods
. 最简单的方法是添加到模块中,但我所有的其他类也有这个方法。我已经尝试添加一个define_method
intoacts_as
方法,返回未定义的方法。任何想法 ?