Модель Rails метод self. против равнины - PullRequest
32 голосов
/ 26 февраля 2012

При взгляде на методы в моделях Rails иногда я вижу self.method_name, а иногда просто method_name.Какая разница, и как узнать, когда использовать self., а когда нет?

Ответы [ 2 ]

44 голосов
/ 26 февраля 2012

self.method_name указывает метод класса;method_name указывает метод экземпляра.

Вы можете прочитать больше о методах класса и экземпляра в этом сообщении в блоге или, если вы предпочитаете что-то более официальное, Секция программирования на языке Ruby .

30 голосов
/ 26 февраля 2012

1) Применительно к определениям методов «self». сделает метод класса, тогда как plain будет методом экземпляра.

2) При применении к атрибутам в модели важно всегда использовать self при изменении атрибута, но в противном случае он вам не понадобится.

так, например:

def some_method
 self.name = new_value # correct
 name = new_value # will not change the attribute
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...