我想,這,這是一個非常愚蠢的問題,但我只是困惑自己Rails的ActiveRecord的自我.___ VS @____
我有幾個的has_many定義。我可以通過說自己來以實例方法引用它們。如果我嘗試通過@來引用,我會得到nil。僅僅是因爲它是一個ActiveRecord對象,它不能作爲類中的實例變量使用?
我想,這,這是一個非常愚蠢的問題,但我只是困惑自己Rails的ActiveRecord的自我.___ VS @____
我有幾個的has_many定義。我可以通過說自己來以實例方法引用它們。如果我嘗試通過@來引用,我會得到nil。僅僅是因爲它是一個ActiveRecord對象,它不能作爲類中的實例變量使用?
它們沒有設置爲實例變量,它們是方法。相同的屬性,你應該始終訪問他們像這樣:
self.property
self.read_attribute(:property)
self.write_attribute(:property, value)
他們甚至可以在年底的實例變量,但是這是一個實現細節,你應該始終調用過衆所周知的代碼接口,這是方法。
關聯是方法而不是實例變量。
這是有史以來最長的10分鐘接受答案:) –
hahahaha,很高興我可以幫助:) –