Я пытаюсь установить пользователя в качестве администратора, метод:Рубин на Rails update_attibutes не работает
def set_user_admin
if admin_true? == true
user = User.find(params[:format])
if user == nil
redirect_to managements_path
else
user.update_attributes(admin: true, assistant: true,
businessman: true)
redirect_to managements_path
flash[:notice] = "The user #{user.name} is an admin user now"
end
else
end
end
Метод запуска просто отлично, но не сохраняет в базе данных. Некоторая проверка - это остановка действия. Затем я запускаю команду в терминале:
u = User.find_by_id(3)
u.update_attributes(admin: true)
(0.1ms) rollback transaction
=> false
u.errors
@messages={:password=>["Choose a password", "Your password must be at least 4 characters
"], :password_confirmation=>["You must confirm your password
"]}
Таким образом, я не могу обновить пользователя в качестве администратора, так как валидация пароль вызываются в действии.
Кто-нибудь знает, почему в update_attributes вызывается пароль и update_password? Я не понимаю, почему
Нет нет,: формат возвращает объект. Когда я печатаю: flash [: notice] = «Пользователь # {user.name} теперь является пользователем admin« Я получаю правильное имя. –
может размещать ваш файл модели для пользователя, где написаны валидации. – user3775217