Rails ActiveRecord self .___ vs @____

时间:2011-07-31 15:18:38

标签: ruby-on-rails activerecord associations

我认为这是一个非常愚蠢的问题,但我只是把自己搞糊涂了

我定义了几个has_many。我可以通过自我说明在实例方法中引用它们.-------如果我尝试通过@引用 - ------我得到零。是不是因为它是一个ActiveRecord对象,它不能作为类中的实例变量?

2 个答案:

答案 0 :(得分:4)

它们不是实例变量,而是方法。与您的属性相同,您应始终像这样访问它们:

self.property
self.read_attribute(:property)
self.write_attribute(:property, value)

它们甚至可以是最后的实例变量,但这是一个实现细节,您应该始终通过众所周知的接口调用代码,这是方法。

答案 1 :(得分:1)

关联是方法而不是实例变量。