2011-07-31 46 views
4

我想,這,這是一個非常愚蠢的問題,但我只是困惑自己Rails的ActiveRecord的自我.___ VS @____

我有幾個的has_many定義。我可以通過說自己來以實例方法引用它們。如果我嘗試通過@來引用,我會得到nil。僅僅是因爲它是一個ActiveRecord對象,它不能作爲類中的實例變量使用?

回答

4

它們沒有設置爲實例變量,它們是方法。相同的屬性,你應該始終訪問他們像這樣:

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

他們甚至可以在年底的實例變量,但是這是一個實現細節,你應該始終調用過衆所周知的代碼接口,這是方法。

+0

這是有史以來最長的10分鐘接受答案:) –

+0

haha​​haha,很高興我可以幫助:) –

1

關聯是方法而不是實例變量。