Ruby 什么';s singleton_class.send&;这个元编程示例中的singleton_class.class_eval? 类产品
我想了解在本例中如何定义Ruby 什么';s singleton_class.send&;这个元编程示例中的singleton_class.class_eval? 类产品,ruby,metaprogramming,Ruby,Metaprogramming,我想了解在本例中如何定义set\u table\u name 为什么这里需要singleton\u class.send 为什么在singleton\u class而不是在self上调用class\u eval?使用“singleton\u class”的原因是,您不想修改ActiveRecord::基类,而是要修改产品类 有关元编程和单例类的更多信息,请点击此处:此已灭绝的存档版本\u为什么链接: class Product < ActiveRecord::Base set_table
set\u table\u name
为什么这里需要singleton\u class.send
为什么在singleton\u class
而不是在self
上调用class\u eval
?使用“singleton\u class”的原因是,您不想修改ActiveRecord::基类,而是要修改产品类
有关元编程和单例类的更多信息,请点击此处:此已灭绝的存档版本\u为什么链接:
class Product < ActiveRecord::Base
set_table_name 'produce'
end
module ActiveRecord
class Base
def self.set_table_name name
define_attr_method :table_name, name
end
def self.define_attr_method(name, value)
singleton_class.send :alias_method, "original_#{name}", name
singleton_class.class_eval do
define_method(name) do
value
end
end
end
end