我有三个型号。 1-产品 2-自行车 3-车
这些模型具有多态关联。产品型号包含自行车和汽车的常见物品:价格,颜色等。
现在我想通过汽车或自行车的对象直接访问产品的方法,如bike_obj.price
def method_missing(meth, *args, &blk)
product.send(meth, *args, &blk)
rescue NoMethodError
super
end
现在我能够实现这个目标
>> Car.last.price
=> 1000
但是问题是SA模式的汽车模型已经停止工作了。当我做Car.last.save时,我不知道为什么它会在method_missing中出现。它引发了这个异常
NoMethodError: undefined method `<=>' for #<Car:0x7fcdd39ef2c0>
答案 0 :(得分:1)
每当您覆盖respond_to?
:
method_missing
def respond_to?(method, include_private = false)
super || product.respond_to?(method, include_private)
end