在Rails模型中查看方法时,有时我会看到self.method_name
,有时只看到method_name
。有什么区别,什么是知道何时使用self.
以及何时不使用?
答案 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