2015-02-08 47 views
3

Following this tutorial,我建立一個簡單的登記制度與色器件,其中用戶輸入他們的電子郵件地址,他們收到一封確認郵件,他們點擊它,它需要他們,他們有一個表格輸入密碼並完成註冊。爲用戶自動設置密碼 - 設計

如何跳過密碼形式,這樣,一旦用戶點擊電子郵件中的確認鏈接,創建自己的帳戶?我怎樣才能爲所有用戶自動設置簡單的密碼?

+0

我把一個'after_create'鉤在'User'模型設置默認密碼。但至於跳過密碼輸入,我不確定。 – 2015-02-08 20:42:09

回答

3

創建用戶模型的方法,而不是使用它的create方法。讓我們把它create_with_password

def self.create_with_password(attr={}) 
    generated_password = attr[:first_name] + "123" 
    self.create(attr.merge(password: generated_password, password_confirmation: generated_password)) 
end 

覆蓋色器件的登記控制器使用您生成使用first_name屬性,例如你的用戶模型色器件passwordpassword_confirmation兩個必要的字段,然後123像新方法John123

在您的控制器中對參數進行清理後。你應該叫User.create_with_password(user_params)

+1

實際上最好使用'generated_pa​​ssword = Devise.friendly_token.first(8)'生成密碼 – Yurijmi 2016-05-13 13:39:22

+0

當然是這樣。這只是一個示例用法。 – 2016-05-13 14:54:39

+0

我個人喜歡用[xkpassword](https://github.com/jdeen/xkpassword)生成一些內存友好的強熵密碼, – 2017-05-19 05:39:35