has_secure_password
на самом деле является частью ActiveModel и не является самоцветом.Gem bcrypt просто используется для хэширования атрибута password_digest.
Метод has_secure_password на самом деле очень короткий ( источник здесь ) и содержит одну строку, требующую подтверждения пароля:
# File activemodel/lib/active_model/secure_password.rb, line 34
validates_confirmation_of :password
validates_presence_of :password_digest
Итак, переопределение метода has_secure_password путем создания модифицированной версии в папке config / initializer должно работать.Закомментирование строки validates_confirmation_of отключит подтверждение пароля.Конечно, вы также можете переписать метод, чтобы использовать хеш опций, как вы пытались сделать в своем вопросе.