【发布时间】:2011-07-31 15:18:37
【问题描述】:
我认为这是一个非常愚蠢的问题,但我只是把自己弄糊涂了
我定义了几个 has_many。我可以在实例方法中通过说 self 来引用它们。-------- 如果我尝试通过 @-------- 进行引用,我会得到 nil。是不是因为它是一个 ActiveRecord 对象,所以它不能作为类中的实例变量使用?
【问题讨论】:
标签: ruby-on-rails activerecord associations
我认为这是一个非常愚蠢的问题,但我只是把自己弄糊涂了
我定义了几个 has_many。我可以在实例方法中通过说 self 来引用它们。-------- 如果我尝试通过 @-------- 进行引用,我会得到 nil。是不是因为它是一个 ActiveRecord 对象,所以它不能作为类中的实例变量使用?
【问题讨论】:
标签: ruby-on-rails activerecord associations
它们没有设置为实例变量,它们是方法。与您的属性相同,您应该始终像这样访问它们:
self.property
self.read_attribute(:property)
self.write_attribute(:property, value)
最后它们甚至可以是实例变量,但这是一个实现细节,您应该始终通过众所周知的接口调用代码,也就是方法。
【讨论】:
关联是方法而不是实例变量。
【讨论】: