我正在尝试理解attr_accessor,而在挖掘时我对以下行为感到非常困惑:
class Item
def change_price
price=(2)
end
def price=(value)
@price = value
end
def price
@price
end
end
my_item = Item.new
p my_item.price
my_item.change_price
p my_item.price
=> nil
nil
我希望价格设定为2.很明显,我完全误解了一些我认为很明显的东西。 有人会好心解释我在哪里厚吗?
谢谢
答案 0 :(得分:1)
属性设置器(任何带有等号的函数)必须在显式接收器上调用。否则,正在创建局部变量 price
并将其分配给该值。
修正:
def change_price
# price=(2)
self.price=(2)
end