2012-02-20 12 views
1

私はレール初心者です。最初にDeviseを使用しているときに奇妙なことに遭遇しました。これがDeviseのバグか私の終わりの問題かどうか教えてください。私は、新しいユーザーがサインアップした後に工夫2.0.1デベise電子メールの問題の確認

を使用しています

、電子メールは、登録したメールアドレスに送信されます。

ケース1:

この部分は、電子メールのリンクを介して確認したら、彼はサイト全体にアクセスすることが可能である

OKです。

ケース2:

この部分はOKでない

私がサインアップした後、私はすぐに確認リンクをクリックせずに、私は、ページに署名してサインインしようとする行きます作成したメールアカウントとパスワード、それがはsign_inページに、それは単にルート、エラーが表示されない...理想的には私はそれが

"We have sent you an email. Please confirm. 
If you have not received them please ask for conformation instructions" 
のようなエラーに何かを表示したいと思います

ケース3:私はサインアップした後

この部分は私が忘れてしまったパスワードのLNKをクリックし、

OKではないです。私はちょうど私がサインアップした電子メールアドレスを入力します。私はリセットパスワードの指示を送信します。パスワードのリセット指示の代わりに、私は理想的に私にエラーを送信したいと思います。"Email first has to been confirmed first in order to send reset password instructions."

あなたの助けとサポートを楽しみにしています。

おかげ

答えて

2

私は人々が確認知らせる必要がある場合、私は通常私のコントローラのいずれかでこれを設定する:彼らは確認していない限り、

render :template => 'shared/unconfirmed' and return if current_user.confirmed? == false 

これは何をやって人々を停止し、制限要件は私がどこに置くかを決定する。例えば、あなたが確認するまですべてをやっている人をブロックしたいのであれば、それをあなたのapplication_controllerのbefore_filterに入れます。投稿の作成を停止したい場合は、Postsコントローラに投稿してください。これが機能する

、あなたは本当にもの人々せるdevise.rb設定ファイルに設定を「config.confirm_within」のデフォルト値を変更する必要があります:私はこれをやってみました

# ==> Configuration for :confirmable 
# A period that the user is allowed to access the website even without 
# confirming his account. For instance, if set to 2.days, the user will be 
# able to access the website for two days without confirming his account, 
# access will be blocked just in the third day. Default is 0.days, meaning 
# the user cannot access the website without confirming his account. 
# config.confirm_within = 2.days 
+0

を..しかし、私はエラーが発生しています!また、私は最初の場所でユーザー2日間のアクセスを与えたいとは思わない。私はDevise Bugをもっと見ています..上記のCase 3&Case 2 .. – gkolan

関連する問題