update_attributes теперь позволяет вам переопределить защиту, если вы знаете, что хеш безопасен, скажем, для внутреннего использования, где настраиваемые поля не приходят из контролируемого пользователем хеша.
user = User.new({
first_name: signup.first_name,
last_name: signup.last_name,
email: signup.email,
birthday: signup.birthday,
encrypted_password: signup.encrypted_password,
salt: signup.salt
}, {without_protection: true})
Вы также можете рассмотреть роли :
User.new(params, as: :admin)