簡體   English   中英

無法使用rake db:seed for Rails 3.0創建Devise帳戶

[英]Cannot create Devise account using rake db:seed for Rails 3.0

我正在嘗試使用rake db:seed預先加載所有設備帳戶。 所有其他模型的數據似乎都插入到數據庫中,但由於某種原因,沒有為使用設計的Person模型創建行。 從Web界面注冊工作正常,但我想避免手動創建帳戶,這就是我使用rake db:seed的原因。 我從通過Web界面創建的帳戶中復制了encrypted_pa​​ssword,password_salt。 請讓我知道如何解決這個問題? 非常感謝..

people = Person.create(
                        :email => 'nnn@gmail.com',
                        :encrypted_password => '$2a$10$SyacAOhJQtVeTcTPYm.ROuFbhGMylfj4fLrK3NHyeRwfEokKp2NVW',
                        :password_salt => '$2a$10$SyacAOhJQtVeTcTPYm.ROu',
                        :first_name => "nnn",
                        :last_name => "yyy"
                       )


in routes.rb i have.

    devise_for :people

我過去使用過Devise做過這個。 我沒有嘗試設置加密密碼和鹽。 我只是設置密碼和確認這樣的東西(我沒有我的項目方便):

Person.create(:email => 'nnn@gmail.com', :password => 'foobar', :password_confirmation => 'foobar', :first_name => 'nn', :last_name => 'yy')

試試吧。

很可能“創建”方法由於模型驗證而悄然失敗,因此返回false。 如果您使用“創建!”,您將會出錯。 替代方法( 帶感嘆號 ) - 如果驗證失敗,此方法會引發異常。

在您的情況下驗證失敗的可能原因是( 默認情況下為Devise )最小密碼長度為6個字符,而您根本沒有提供密碼。

如果您在多次運行rake db:seed時不想要重復項:

User.create(
  email: email,
  password: password,
  password_confirmation: password
) unless User.where(email: email).exists?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM