【82日目】【1日20分のRailsチュートリアル】【第8章】ユーザー登録時にログインするようにする
今日は「8.2.5 ユーザー登録時にログイン」から。
8.2.5 ユーザー登録時にログイン
以上で認証システムが動作するようになりましたが、今のままでは、登録の終わったユーザーがデフォルトではログインしていないので、
(中略)
ユーザー登録中にログインを済ませておくことにします。
Webサービスの中でもユーザー新規作成時にログインしてくれるやつとしてくれないやつあるよね。
私も登録時にログインしてくれるやつの方がいいなぁ。
app/controllers/users_controller.rb
: if @user.save log_in @user flash[:success] = "Welcome to the Sample App!" :
log_in
メソッドを追加しただけ。
リスト8.22の動作をテストするために、リスト7.26のテストに1行追加して、ユーザーがログイン中かどうかをチェックします。
そのために、リスト8.15で定義したlogged_in?ヘルパーメソッドとは別に、is_logged_in?ヘルパーメソッドを定義しておくと便利です。
前追加したlogged_in?ヘルパーメソッドはテストから呼び出せないらしいのでテスト用にヘルパーメソッドを作成する。
test/test_helper.rb
# テストユーザーがログインしていればtrueを返す def is_logged_in? !session[:user_id].nil? end
ヘルパーメソッドを使ってテストを追加。
test/integration/users_signup_test.rb
test "valid signup information" do : assert is_logged_in? end
テスト実行して問題ないことを確認。
$ bundle exec rake test 24 tests, 55 assertions, 0 failures, 0 errors, 0 skips
機能的には一行追加するだけって簡単だなぁ。
今日の作業時間は【16分】。
次は「8.3 ログアウト」から。