通过控制台创建新的Redmine用户是否有效? =>假

时间:2014-10-05 16:59:19

标签: ruby-on-rails redmine

由于用户无效,保存失败。这是我在控制台中运行的内容:

RAILS_ENV=production rails c

clear_password = SecureRandom.urlsafe_base64(12)
salt = User.generate_salt
hashed_password = User.hash_password("#{salt}#{User.hash_password clear_password}")

admin_user = User.new({firstname: 'Bob', lastname: 'Doe', mail: 'john@doe.com'})
admin_user.login = 'adminuser'
admin_user.admin = true
admin_user.mail_notification = true
admin_user.status = 1
admin_user.salt = salt
admin_user.hashed_password = hashed_password

admin_user.valid?
User Exists (0.6ms)  SELECT 1 AS one FROM `users` WHERE `users`.`type` IN ('User', 'AnonymousUser') AND `users`.`login` = 'adminuser' LIMIT 1
User Exists (0.3ms)  SELECT 1 AS one FROM `users` WHERE `users`.`type` IN ('User', 'AnonymousUser') AND `users`.`mail` = 'bob@doe.com' LIMIT 1
 => false

这几乎没有给我一个调试消息,因为db中当前没有用户。任何见解将不胜感激!


更新

我在设置每个属性后调用了valid?。问题似乎与mail_notification有关。我删除它,似乎产生有效。我完全解决后会更新答案。

1 个答案:

答案 0 :(得分:0)

使用:

user.save!

强制代码引发异常并显示有关失败或使用原因的消息:

user.save
puts user.errors.full_messages.join(", ")

打印对象创建的所有错误消息,以便您可以找出缺少的内容。