我正在构建一个类似下面的模块,但是我在self.attributes方法调用中遇到了“未定义的方法”错误。我确定我错过了一些简单但却看不到的东西。任何指导将不胜感激!
module TestModule
def self.included(base)
base.extend(ClassMethods)
base.extend(InstanceMethods)
end
module InstanceMethods
def mon_mothma
self.attributes.each do |key, value|
admiral_ackbar(key)
end
end
end
module ClassMethods
def admiral_ackbar(key)
self.send("#{key}=", value)
end
end
end
ActiveRecord::Base.send(:include, TestModule)
答案 0 :(得分:0)
根据您的建议更多地考虑您的反馈,我找到了我的解决方案,将base.extend(InstanceMethods)
更改为base.include(InstanceMethods)
。然后,实例化方法可用于实例化对象。然后我简单地将麻烦的类方法更改为实例方法。非常感谢!