Скрытие атрибута в модели 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
Есть идеи, как добиться этого или какие-либо недостатки этого подхода?