2012-04-17 33 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

相关问题