Скрытие атрибута в модели 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

Есть идеи, как добиться этого или какие-либо недостатки этого подхода?

Ответы на вопрос(4)

Ваш ответ на вопрос