Rails Tutorial復習用メモ

「Rails Tutorial」を1週した中での気づきや要復習ポイントを本記事にまとめます。

僕は『現場で使える Ruby on Rails 5速習実践ガイド』を読み、プログラミングスクールのカリキュラムを終えた上で「Rails Tutorial」に臨みましたが、それでもかなり初見の内容がありました。

今後効率的に復習することができるよう、初見だった内容を本記事に記載します。

復習のしやすさや整理のしやすさを考慮して、下記の内容別に整理します。
(エンジニアの方からすると、ジャンルの粒度がバラバラに感じられるかもしれません)

・Rubyメソッド

・Railsメソッド

・ヘルパー/タグ

・HTML/CSS/JavaScript

・セキュリティ

・データベース

・その他機能

※各項目の冒頭にはカッコ書き()で章を記載しています

Rubyメソッド

(4)アクセサメソッド

  • アクセサーを作成すると、そのデータを取り出すメソッド (getter) と、データに代入するメソッド (setter) をそれぞれ定義できる

(7)debug

  • パラメーターの情報をbodyに表示できる

(7)debugger

  • byebugのgemを利用する
  • コントローラー内に’debugger’を差し込む

(14)Proc

  • ->というラムダ式は、ブロック (4.3.2) を引数に取り、Procオブジェクトを返す

Railsメソッド

(6)authenticate

  • 引数に渡された文字列 (パスワード) をハッシュ化した値と、データベース内にあるpassword_digestカラムの値を比較

(10)request.url

  • リクエスト先を返す

(14)referrer.url

  • フレンドリーフォワーディングのrequest.url変数と似ていて、一つ前のURLを返す

(14)respond_to

  • リクエストの種類によって応答を場合分けする

ヘルパー/タグ

(4)カスタムヘルパー(モジュール)

  • 様々なコントローラやビューでおびただしい数のメソッドを定義するときにひとまとめにする技術
  • ApplicationHelperに置くか、別にヘルパーを切り出してApplicationControllerにincludeする

(4)組み込みヘルパー

  • Railsに組み込まれている関数
  • form_tagやstylesheet_tagなど

(7)content_tag

(12)hidden_field_tag

  • 指定した:idを取得する
  • 直接:idを取得できる

(12)hiddenf_field

  • 指定した:idを取得する
  • モデル経由で:idを取得できる

HTML/CSS/JavaScript

(5)アセットパイプライン

  • それぞれのアセットをひとまとめにする機能

(5)Sass

  • CSSを拡張したスタイルシート
    • ネストできる
    • 変数を利用できる
    • mixinできる

(10)属性rel=”noopener”

  • 新しく開いたページからwindow.openerオブジェクトを使って元ページの操作をできなくするhtmlの属性

認証/セッション/セキュリティ

(7)SSL

  • ローカルのサーバからネットワークに流れる前に、大事な情報を暗号化する技術

(9)トークン

  • 「トークン」とは、パスワードの平文と同じような秘匿されるべき情報を指す

(9)SecureRandom.urlsage_base64メソッド

  • A–Z、a–z、0–9、”-“、”_”のいずれかの文字 (64種類) からなる長さ22のランダムな文字列を返す

(9)cookiesメソッド

  • このメソッドは、sessionのときと同様にハッシュとして扱えます。
  • 個別のcookiesは、1つのvalue (値) と、オプションのexpires (有効期限) からできている

(9)cookie

  • cookieとはWEBサーバーが発行し、ブラウザが保持するキーと値
  • ブラウザのcookieは保持している記憶トークンをWEBサーバーへ渡し、WEBサーバーのデータベースに保存されている記憶ダイジェストと一致していることを確認する
    • ブラウザ→記憶トークン(remember_token)
    • WEBサーバー→記憶ダイジェスト(remember_digest) = 記憶トークンの暗号化

(10)フレンドリーフォワーディング機能

  • ログインしていないと使えない機能を利用しようする場合、ログインページへ遷移し、その後当初の機能のページに戻る機能

データベース

(14)複合インデックスキー

  • データを高速で取り出しやすくなる

(14)SQLエスケープ

  • 疑問符があることで、SQLクエリに代入する前にidがエスケープされるため、SQLインジェクション (SQL Injection) と呼ばれる深刻なセキュリティホールを避けることができる

(14)SQL複数指定

その他機能

(3)Guard

  • ファイルシステムを監視して自動的にテストを実行する機能
  • Guardfileに設定を書き込む

(8)ルートを調べるコマンド

まとめ

RubyやRailsだけでなく、セキュリティやDB(SQL)についても知らないことが多くありました。

各項目を深掘りしながら、特にSQLやセキュリティについては体系的に学ばねばなりそうですね。

「Rails Tutorial」は評判通りかなり良い教材でした!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です