При взгляде на методы в моделях Rails иногда я вижу self.method_name
, а иногда просто method_name
. Какая разница и что такое руководство, чтобы знать, когда использовать self.
, а когда нет?
Rails Модельный метод self. против равнины
Ответ 1
self.method_name указывает метод класса; method_name указывает метод экземпляра.
Вы можете прочитать намного больше о методах класса и экземпляра в этом сообщении в блоге или, если вы предпочитаете что-то более официальное, Программирование раздела класса Ruby.
Ответ 2
1) При применении к определениям методов "я". сделает его методом класса, а plain будет методом экземпляра.
2) При применении к атрибутам в модели важно всегда использовать self при изменении атрибута, но в противном случае вам это не понадобится.
так, например:
def some_method
self.name = new_value # correct
name = new_value # will not change the attribute
end