『Ruby on Rails チュートリアル』「第8章 基本的なログイン機構」2

railstutorial.jp

序文

Railsチュートリアル20日目。

Railsチュートリアルは難しいと聞いていたので、今まで習得したRailsの知識にさらに新しい知識をプラスしてくれるものだと思っていたのですが、そもそもRailsが難しいって話だったということに薄々気づいてきましたこんにちは。

進捗

  • 第8章 基本的なログイン機構
    • 8.2 ログイン
    • 8.3 ログアウト
    • 8.4 最後に

コード実装部分(一部)

/sample_app/test/integration/users_login_test.rb

require 'test_helper'

class UsersLoginTest < ActionDispatch::IntegrationTest
  # テストの前に実行する
  # @userにfixturesで生成したユーザーデータを設定する
  def setup
    @user = users(:michael)
  end

(中略)  
  
  # 正しい情報でログインしてログアウトまでできるかのテスト
  test "login with valid information followed by logout" do
    # /loginにGETでアクセスする
    get login_path
    # /loginにPOSTで正しいログイン情報を送信する
    post login_path, params: { session: { email:    @user.email,
                                          password: 'password' } }
    # リダイレクト先が@userであるか
    assert_redirected_to @user
    # 実際にリダイレクトする
    follow_redirect!
    # usersコントローラーのshowレイアウトが適用されているか
    assert_template 'users/show'
    # ログインへのリンクがなくなっているか
    assert_select "a[href=?]", login_path, count: 0
    # ログアウトのリンクがあるか
    assert_select "a[href=?]", logout_path
    # ユーザー情報(@user)へのリンクがあるか
    assert_select "a[href=?]", user_path(@user)
    # /loginにDELETEでアクセスする(内部的にはPOSTらしい)
    delete logout_path
    # ログアウトされたか
    assert_not is_logged_in?
    # ログアウト後のリダイレクト先はroot_urlか(root_pathでもおk?)
    assert_redirected_to root_url
    # リダイレクト処理
    follow_redirect!
    # ログインリンクがあるか
    assert_select "a[href=?]", login_path
    # ログアウトリンクがなくなったか
    assert_select "a[href=?]", logout_path,      count: 0
    # ユーザー情報へのリンクがなくなったか
    assert_select "a[href=?]", user_path(@user), count: 0
  end
end

GitHub

github.com

実行結果

f:id:yjkym:20181208154122p:plain

感想

Railsチュートリアル8章終了。
できれば今年中にRailsチュートリアルを終わらせたいので、比較的スムーズに終わらせられたのは非常に良かった。

ログインとログアウト機能の実装完了。
私がプログラミングの学習方法としてひっそり提唱している「お手本コードをコピペしていいから、一行ずつコメント書け」という方法はやはり有効だと思う。
つーかこれ以外の方法でのちのち知識を役立てられる気がしない…。

いわゆる「写経」すすめる人って頭の構造が違うような気がするんですよね…。
特に意識しなくてもコード書きながらその意味を考えられる人というか…。

凡人(以下)はきっちりノートをとりながら知識を積み重ねていきましょう…。

カロリーメイトください…。

今日のunityroom

ShadowManSearch | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう
www.youtube.com
作り込んでますね。
動画には出てないんですが、床ぎりぎりの場所に着地したときにちょっと耐えるようなアクションが出てきてすごい。