2012-04-17 43 views
1

假設我有一個Post模型,我想運行一個方法時,它的保存Rails - 在方法內部引用當前模型實例的正確方法?

post.rb我做的:

:before_save some_method_on_post 

def some_method_on_post 
    # Do something here 
end 

我的問題是,我該如何引用當前實例化後的對象在方法裏面?

編輯:所以要澄清假設我想這樣做:

def some_method_on_post 
    post.some_property = foo 
end 

難道我指的是post自我?

+0

實例方法始終引用有問題的對象實例。這就是'self'應該被定義爲。這裏有什麼困惑? – tadman 2012-04-17 00:56:18

+0

查看我的編輯 – 2012-04-17 00:59:06

回答

8

是的。

當使用屬性設定方法,則是指self如方法

def self.attribute_name=(value) 
    @attribute_name = value 
end 

作爲快捷方式方便起見,當你有檢索但沒有設置對象的方法(這樣的吸氣劑) ,你可以省略self,例如

def attribute_name 
    @the_value 
end 
+1

請注意,'self'類似於JavaScript和其他語言的'this'。 – tadman 2012-04-17 04:48:48

相關問題