Скрытие атрибута в модели ActiveRecord
Я немного новичок в Rails и работаю над созданием пользовательской модели с использованием ActiveRecord. В этой модели у меня есть атрибут пароля, который предназначен для хранения хэша пользователя.пароль.
Я хочу удалить как чтение, так и установку этого атрибута напрямую. Тем не менее, я могуКажется, что не существует способа удалить аксессоры при использовании консоли Rails. До сих пор единственным жизнеспособным решением было явное переопределение методов доступа для пароля, и я неЯ действительно не хочу их переопределять, я хочу, чтобы аксессоры исчезли - или, по крайней мере, читатель.
Вот моя модель:
class User < ActiveRecord::Base
// various associations
def password_correct?(password)
read_attribute(:password) == hash(password)
end
def password=(password)
write_attribute(:password, hash(password))
end
def password
"get your dirty fingers off this attribute"
end
private
def hash(input)
Digest::SHA2.new(512).update(input).hexdigest
end
end
Есть идеи, как добиться этого или какие-либо недостатки этого подхода?