次のスキームに従う Rails アプリケーションを作成する方法がわかりません。
このサイトは主に、1 つまたは 2 つの保護されていない「静的」ページと「/」から直接提供されるログイン ページに加えて、ユーザーの認証を必要とする「保護された」内部パスで構成されています ( root_path)。
一般的に、ユーザーは にアクセスしてログインするフローに従い、root_path認証されていないときに保護されたページにアクセスしようとすると、 に戻されroot_pathます。ユーザーが のフォームにログインすると、root_pathに送信されますhome_path(他のページの保護を介して送信された場合でも、root_pathつまり、スマート転送はありません。後で追加する可能性があります。)
さらに、認証済みの状態で を参照しようとするとroot_path、要求がすぐに に転送されhome_pathます。home_pathのページには、ログアウトするためのリンクが含まれます。その結果、ユーザーはすぐに に移動しますroot_path。
私の質問:
これを設定するには、routes.rb エントリはどのようになりますか? Usersコントローラーとコントローラーがあり、コマンドライン認証 (irb コンソール経由) が既に機能していると仮定Sessionsすると、このシステムを機能させるルートとコントローラー メソッドの正しい組み合わせは何ですか? 私は非常に混乱しています!
それが役立つ場合、ここに私がこれまでに持っているものがありますが、これを動作状態にしてテストすることさえできないほど迷っています。
次のようなルートファイルがあります。
MyAppRails::Application.routes.draw do
resources :sessions, only: [:new, :create, :destroy]
root to: "sessions#new"
match '/signout', to: 'sessions#destroy', via: :delete
match "/home" => 'users#home'
end
UsersController にはhomeメソッドのみがあり、SessionsController にはnew、、、createおよびdestroyメソッドがあります。
サインイン フォームをどこに送信すればよいかわからないという点で特に行き詰まっていますsessions#new。何らかの形で指定する必要があると思いますが、それがどのように機能するのかがよくわかりません。
ありがとう。