ユーザーがサインアップした後、ダッシュボードに誘導したい。フル機能のために、彼らは自分の電子メールを確認する必要があります。Rails&Devise:特定の機能について電子メールを確認してもらい、確認する前にログインを許可する
今、Userモデルにconfirmableを追加すると、ユーザーはログインできません。
どうすればこの機能を実現できますか?
ユーザーがサインアップした後、ダッシュボードに誘導したい。フル機能のために、彼らは自分の電子メールを確認する必要があります。Rails&Devise:特定の機能について電子メールを確認してもらい、確認する前にログインを許可する
今、Userモデルにconfirmableを追加すると、ユーザーはログインできません。
どうすればこの機能を実現できますか?
だけapplication.rb
def is_confirmed?
if user_signed_in?
if current_user.confirmed?
return true
else
flash[:notice] = "You are not allow to view this page."
redirect_to dashboard_path # your dashboard path
end
end
end
使用中の検証を書くdevise.rbに
config.allow_unconfirmed_access_for = nil
を書きます
before_action :is_confirmed?, except: [:dashbord]
私はあなたの工夫とallowing-unconfirmed-access
ちょうどそれらがログインし、ユーザーが電子メールを確認した場合だけでチェックできるようにするためにextreamely長い期間を追加してこれを達成することができると思う - 彼らにすべてのダッシュボードの内容およびその逆を示しています。
:confirmable
バリデーションをまったくスキップすることはできます。
これが役に立ちます。
https://github.com/plataformatec/devise/wiki/How-To:-Add-:confirmable-to-Users
#ソリューション1 このwikiページをチェックアウトのようなdevise.rb
何かであなたの缶設定:
config.allow_unconfirmed_access_for = nil
だからそれは、ユーザーが任意の確認なしに、しかし、例えばアクセスできることを意味:
config.allow_unconfirmed_access_for = 1.hour
だから、1時間以内にアクセスできるUT確認
#ソリューション2
# in User.rb
protected
def confirmation_required?
false
end
だから今、確認せずに何でもアクセスすることができます使用しますが、私は解決策#1は、より効率的であると思います!