参考書を読んだメモ : 独習Ruby on Rails 10章, 11章

独習Ruby on Rails

  • 保存していた分が消えちゃったので薄めのメモ

ActionView

ERBテンプレート

  • 画面を表示するにはHTMLで記述するがrubuyを埋め込めるERBテンプレートがある
  • <% %>, <%= %>, Rubyを挿入する
  • <%# %>コメントを入れる
  • 複数行コメントアウトは=begin 〜 =end, if false 〜 end

レイアウト

  • 共通部分をレイアウトとしてapp/view/layouts/に保持される
  • content_forで動的なレイアウト構成が可能

部分テンプレート

  • 「_」を先頭に付けると部分テンプレート(ex. _form.html.erb
  • locals オプションで引数を部分テンプレートに渡せる

ビューヘルパー

  • image_tag
    • 画像を表示する
  • link_to
    • リンク先を支持して、画面からクリックしてHTTPリクエストを要求する
    • :method
      • HTTPメソッドの指定
    • :data
      • data要素を支持する必要がある場合に使用する
    • :remote
      • デフォルトではfalse(local: true)。Ajaxを支持するときはtrue
  • form_with
    • 入力フォームを使う
    • model オプション
      • モデルリソースを対象にした入力フォーム
      • 送信先URIは自動的に設定される
    • scope
      • 特定のリソースに結びつかない入力フォームを作る
      • urlは指定しないといけない

ビューを支える機能

アセットパイプライン

  • ビュー画面を構成するHTML以外の要素をアセットとして管理する
    • 画像, js, CSS
  • アセットパイプラインはSprocketsを使って設定した複数のアセットを1つに連結して1本のパイプのように利用すること

非同期更新Ajax, キャッシング機能

  • Ajax によるHTTPリクエストは非同期で行われる
    • json や js で HTTPレスポンスが返る
  • キャッシングとは時間がかかるビュー生成・出力といった処理をメモリやファイル上にキャッシュとして保存し再利用、高速化する

i18n国際科対応機能

  • internationalization (I + 18文字 + nなのでi18n)
  • config/initializers/locale.rb に記述する
  • 辞書作成ができる
  • i18n.translateメソッドを使用する
    • これは t まで省略できる(ex. t :hello)