2014-10-05 46 views
0

由於用戶無效,保存失敗。這是我在控制檯上運行的內容:通過控制檯創建新的Redmine用戶有效嗎? => false

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: '[email protected]'}) 
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` = '[email protected]' LIMIT 1 
=> false 

這幾乎不會給我一個調試消息,因爲在db中當前沒有用戶。任何有識之士將不勝感激!


更新

我走下線路設置每個屬性後調用valid?。該問題似乎與mail_notification。我刪除它,似乎生效。完全解決後,將更新爲答案。

+0

什麼是驗證錯誤? – 2014-10-05 17:03:00

+0

它只是說'User Exists'和可能導致錯誤的查詢。但是,有0個用戶,因此它不能存在。它由默認的Redmine'User'模型驗證。 – Tomanow 2014-10-05 17:12:11

回答

0

用途:

user.save! 

要強制代碼的消息引發異常有關爲什麼它失敗或使用:

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

要打印所有用於創建對象的錯誤消息,以便你可以找出缺少的東西。

相關問題