我有两个类。基类和实例类。继承自实例类的基类。我无法获取实例对象键值。
class Base
def save
self.attributes
end
end
class Instance < Base
attr_accessor :name, :age
def initialize(attributes={})
attributes.keys.each do |attribute_name|
send("#{attribute_name}=".to_sym, attributes[attribute_name])
end
end
end
p instance = Instance.new({:name => "local", :age => "25"})
p instance.save
p "Expected output"
# {:name => "test1", :age => "25"}
I want the above result from parent class only. I am getting following error message.
**"NoMethodError: undefined method `attributes' for Instance:Class"**
因为attributes
是rails方法,所以你不能直接使用它,但是你可以用不同的方式制作它。我重写了save
方法。
def save
instance_variables.inject({}) { |sum, e| sum[e] = instance_variable_get(e);sum }
end