我想設置一個用戶爲管理員,其方法是:Ruby on 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中調用password和update_password驗證?我不明白爲什麼
不,不,格式返回對象。當我打印時:flash [:notice] =「用戶#{user.name}現在是管理員用戶」我收到正確的名稱。 –
可以將您的模型文件發佈給用戶驗證的地方 – user3775217