Я читал, что модули (в данном случае ActiveSupport::Concern) в ruby являются общими для всех инициализированных экземпляров класса. Поэтому, если бы это было правдой, это означало бы, что любые переменные экземпляра будут общими для всех экземпляров в памяти.
module SetPassword
extend ActiveSupport::Concern
attr_reader :password
def password=(new_password)
@password = new_password
self.crypted_password = password_digest(new_password, salt)
end
end
class User
include SetPassword
end
u = User.new; u.password = 'abcdef'
u2 = User.new; u2.password = '123456'
Безопасен ли приведенный выше код? Или второй пользователь переопределит первого пользователя?
u2.password = '123456'
(а неu.password = '123456'
.) - person Aleksei Matiushkin   schedule 27.02.2019