Rails模型方法自我。 vs普通

时间:2012-02-26 00:38:57

标签: ruby-on-rails

在Rails模型中查看方法时,有时我会看到self.method_name,有时只看到method_name。有什么区别,什么是知道何时使用self.以及何时不使用?

的指南

2 个答案:

答案 0 :(得分:44)

self.method_name表示一个类方法; method_name表示实例方法。

您可以阅读更多关于类和实例方法at this blog post的内容,或者,如果您更喜欢更正式的内容,可以阅读Programming Ruby class section

答案 1 :(得分:29)

1)当应用于方法定义时,'self。'将使它成为一个类方法,而plain将是一个实例方法。

2)当应用于模型中的属性时,在更改属性时始终使用self非常重要,否则您将不需要它。

所以例如:

def some_method
 self.name = new_value # correct
 name = new_value # will not change the attribute
end