ログインしている人に制限されている私のサイトのさまざまな部分へのホームページのリンクがいくつかあります。
ログインしていない場合は、サインアップフォームにリダイレクトされます。
しかし、これは素晴らしいことではないので、まずユーザーを自分のホームページにリダイレクトしたいと思います。また、画面の上部にフラッシュメッセージを表示して、続行するには最初にサインインする必要があることを通知します。
誰かが私を助けたり、正しい方向に向けたりできますか?
ログインしている人に制限されている私のサイトのさまざまな部分へのホームページのリンクがいくつかあります。
ログインしていない場合は、サインアップフォームにリダイレクトされます。
しかし、これは素晴らしいことではないので、まずユーザーを自分のホームページにリダイレクトしたいと思います。また、画面の上部にフラッシュメッセージを表示して、続行するには最初にサインインする必要があることを通知します。
誰かが私を助けたり、正しい方向に向けたりできますか?
redirect_to
1つのステートメントでとフラッシュメッセージを組み合わせることができます。
redirect_to root_url, alert: "You're guest. That page was for users only :-)"
#lib/custom_authentication_failure.rb
class CustomAuthenticationFailure < Devise::FailureApp
protected
def redirect_url
root_url
end
end
# /config/initializers/devise.rb
Devise.setup do |config|
...
config.warden do |manager|
manager.failure_app = CustomAuthenticationFailure
end
end
初期化されていない定数CustomAuthenticationFailureエラーが発生し、CustomAuthenticationFailureクラスを/ libディレクトリの下に置いた場合は、必ずapplication.rbファイルにlibファイルを自動ロードしてください。
config.autoload_paths += %W(#{config.root}/lib)
ユーザーをリダイレクトするページが認証を必要としないことを確認する必要があります。
http://adamtrepanier.net/post/7622315219/devise-authenticate-user-and-redirectおよびhttps://github.com/plataformatec/devise/wiki/_pagesから
編集:authenticate_user!
アクセスを制限するために、を
使用していると思います。