1) Применительно к определениям методов «self». сделает метод класса, тогда как plain будет методом экземпляра.
2) При применении к атрибутам в модели важно всегда использовать self при изменении атрибута, но в противном случае он вам не понадобится.
так, например:
def some_method
self.name = new_value # correct
name = new_value # will not change the attribute
end