【发布时间】:2014-08-03 22:23:24
【问题描述】:
我在 Ruby 中有这两个类:
Prod.rb
class Prod
attr_reader :code, :price
def initialize code, price
@code = code
@price = price
end
end
购买.rb
class Buy
def initialize()
@items = []
end
def addToBasket item
@items << item
end
def changePrice
@items.each do |item|
item.price = 0.00
end
end
end
当我使用下面的代码测试应用程序时,我收到指向上面item.price = 0.00 的错误:
test_1(MyTest): NoMethodError: undefined method 'price=' for #<Prod:0x24d76e8>
我可以打印 item.price 的值,但无法更新它。有什么想法吗?
MyTest.rb
def setup
@prod1 = Prod.new("1", 19.95)
end
def test_1
b = Buy.new()
b.addToBasket(@prod1)
[...]
end
【问题讨论】:
标签: ruby ruby-on-rails-3 pass-by-reference