2

ログインしている人に制限されている私のサイトのさまざまな部分へのホームページのリンクがいくつかあります。

ログインしていない場合は、サインアップフォームにリダイレクトされます。

しかし、これは素晴らしいことではないので、まずユーザーを自分のホームページにリダイレクトしたいと思います。また、画面の上部にフラッシュメッセージを表示して、続行するには最初にサインインする必要があることを通知します。

誰かが私を助けたり、正しい方向に向けたりできますか?

4

2 に答える 2

4

redirect_to1つのステートメントでとフラッシュメッセージを組み合わせることができます。

redirect_to root_url, alert: "You're guest. That page was for users only :-)"
于 2012-05-30T06:34:47.740 に答える
0
#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!アクセスを制限するために、を 使用していると思います。

于 2012-05-30T06:35:35.483 に答える