ユーザーが提案したリンクを使用してメールアドレスを確認し、初期パスワードを設定するための簡単な手順...
アプリが生成する1つのメール(reset_password_tokenを含む)を送信し、そのメールアドレスの有効性を確認するトークンをユーザーが所有していることを検討します。
システムアカウント生成コードでは、ユーザーモデルが:recoverableおよび:database_authenticatableDeviseモジュールで設定されていると仮定します。
acct = User.new
acct.password = User.reset_password_token #won't actually be used...
acct.reset_password_token = User.reset_password_token
acct.email = "user@usercompany.com" #assuming users will identify themselves with this field
#set other acct fields you may need
acct.save
初期パスワードを設定するときに、デバイスのリセットパスワードビューをユーザーにとって少しわかりやすくします。
ビュー/デバイス/パスワード/edit.html.erb
...
<%= "true" == params[:initial] ? "Set your password" : "Reset your password" %>
...
生成された電子メール
Hi <%= @user.name %>
An account has been generated for you.
Please visit www.oursite.com/users/password/edit?initial=true&reset_password_token=<%= @user.reset_password_token %> to set your password.
アプリによって作成されたアカウントは、メールにreset_password_tokenがないとアクセスできないため、ユーザーモデルに:confirmableDeviseモジュールを含める必要はありません。
Deviseは送信を処理し、reset_password_tokenフィールドをクリアします。
方法と友達の詳細についてはdevise_gem_folder/lib/devise/models/recoverable.rb、を参照してください。database_authenticatable.rbreset_password_token
:confirmableこのアプローチではなくDeviseモジュールを使用する場合は、 Devisewikiページを参照してください。