【发布时间】:2023-03-29 17:30:01
【问题描述】:
让我们考虑以下示例:
class Car < ActiveRecord::Base
def engine
@engine ||= Engine.new(self)
end
end
class Engine
def initialize(vehicle)
@vehicle = vehicle
end
def model
@vehicle.model
end
end
我不明白的是,当我去控制台做类似的事情时:
car = Car.last
car.engine.model # => 'V8'
然后
car.model = 'V6'
我明白了
car.engine.model # => 'V6'
这显然是一个简化的示例,但无论如何,谁能解释为什么我在最后一行代码中得到不同的引擎型号名称?不是应该使用@engine 变量并返回之前的引擎型号名称吗?
【问题讨论】:
标签: ruby-on-rails activerecord