2012-04-17 10 views
1

は、私はそれがpost.rbRails - メソッド内部の現在のモデルインスタンスを参照する正しい方法は?

を保存されますときに私はPostモデルを持っていると私はこの方法を実行したいんとします

: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

インスタンスメソッドは、常に問題のオブジェクトインスタンスを参照します。それは、「自己」を次のように定義する必要があります。ここの混乱は何ですか? – tadman

+0

上記の私の編集を参照してください –

答えて

8

はい。

方法を設定する属性を使用している場合、あなたはあなたが取得しますが、オブジェクト(そうゲッター)を設定しない方法を持っているショートカットの利便性として、法にようself

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

を参照してください。 selfを省略することができます。

def attribute_name 
    @the_value 
end 
+1

注意として、 'self'はJavaScriptや他の言語の' this'に似ています。 – tadman

関連する問題