2016-10-10 14 views
0

照会担当者がレフリーについての情報の一部を記入する電子メールを設定しようとしています。レフリーは、データベースに既に存在するかどうかに応じて、2つの異なるメッセージで自分のサービスを購読するための電子メールを受け取ります(幽霊の状態)。しかし、電子メールが送信されると、パスワードは自動的に生成されません。どうして ?Devise |自動生成されたユーザーのパスワードが送信された電子メールに表示されない

送らEメール:

You have been registered as a teacher on XX. 
Please confirm your account 

<a href="http://localhost:3000/en/users/confirmation?confirmation_token=6Ac-y5Ymv1GNAkb5whUK">Confirm my account</a> 
and connect with these credentials log in:<br /> 
login: [email protected]<br /> 
password: 

マイコントローラ:

def new_teacher_registered(teacher, user = nil) 
@teacher = teacher 
@user = user 
@password = user.generate_password 
mail(from: 'XX', to: teacher.email, bcc: "YY", subject: 'You have been registered on XYZ') 
end 

マイビュー:

<% if @user.ghost? %> 
You have been registered as a teacher on XXX. 
Please confirm your account 

<%= link_to "Confirm my account", 
confirmation_url(@user, I18n.locale, :confirmation_token => @user.confirmation_token) %> 

and connect with these credentials log in:<br /> 
login: <%= @user.email %> <br /> 
password: <%= @password %> 

<%else%> 
You have been registered on XX by <%= @teacher.studios.first.user.contact.location.name %> 

そして、私は私のユーザコントローラ

でGENERATE_PASSWORD方法を持っています
class User < ActiveRecord::Base 
..... 
def generate_password 
unless self.encrypted_password 
    @password = Devise.friendly_token.first(8) 
    if self.update(password: password, password_confirmation: password) 
    @password 
    else 
    false 
    end 
end 
end 
...... 
end 

答えて

0

パスワード(ベストプラクティスではありません)を電子メールで送信する代わりに、セキュリティで保護されたサイトで自分のパスワードを作成できるリンクを送信してみませんか?

以下の例では、クリックして一時的なパスワードを与え、deviseがハッピーになるようにリセットリンクを作成し、そのリンク(生のトークン)でメールを送信します。

raw_token, hashed_token = Devise.token_generator.generate(User, :reset_password_token) 
self.reset_password_token = hashed_token 
self.reset_password_sent_at = Time.now.utc 
self.password = Devise.friendly_token.first(8) 
self.save 
UserMailer.add_to_website(course, self, raw_token).deliver_later 
+0

ありがとうございます!私はその方向を見てみよう:) – user6877257

+0

@ user6877257これが役に立つと分かった場合には、それを使用して解決策を探して、これを有用な答えであることを他の人に示すために完全にマークする必要があります。ありがとう! –

関連する問題