2012-02-26 24 views
31

在Rails模型中查看方法時,有時會看到self.method_name,有時候只看到method_name。有什麼區別和什麼是指導知道什麼時候使用self.以及什麼時候不使用?Rails模型方法self。 vs plain

回答

24

1)當應用於方法定義時,'self'。將使其成爲一種類方法,而plain將成爲一種實例方法。

2)當應用於模型中的屬性時,在更改屬性時始終使用self很重要,否則不需要它。

因此,例如:

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

甚至比樓上的回答更好。 – neversion 2016-10-10 01:41:30

+0

點2)讓我瘋狂。謝謝! – 2016-11-15 10:15:34