エンジニア志望のブログ

Railsチュートリアル第5章

はじめに
Ruby on Railsチュートリアル(第6版)のメモ、演習の解答例を記述した記事です。
解答は個人のものなので、誤りがあればご指摘ください。
開発環境  Ruby: 2.7.2 , Rails: 6.1.4

メモ

ヘルパー

5章で新出のヘルパー

リンクを生成する。

link_to( テキスト, パス [, HTML属性 ] )
image_tag

イメージタグを生成する。
app/assets/images配下に画像を置いた場合の例

image_tag("rails.svg", alt: "Rails logo", width: "200px")
render

ビューファイルを指定して表示する。

render( '表示させたいファイルのパス' )

アセットパイプライン

個別のアセット(画像、CSSJavaScript)を最小化、圧縮、連結する一連の機能のこと。
サーバーへのリクエストを減らしたりファイルの使用頻度を減らすというメリットがある。

3つの主要な機能

 ・アセットディレクト
 ・マニフェストファイル
 ・プリプロセッサエンジン

アセットディレクト

アセットパイプラインで使うアセットを格納する場所のこと。
  標準的なアセットディレクト
  ・app/asets
  ・lib/assets
  ・vender/assets

マニフェストファイル

アセットをどのように1つのファイルにまとめるかをRailsに指示するためのファイルのこと。
 実際にアセットをまとめる処理を行うのはSprocketsというgem
 ※Rails6からはwebpackが採用されている

<%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>

デフォルトで作成されるファイルのhead内には上記の記述がある
つまりデフォルトでは
assets/stylesheets/application.css
assets/javascripts/aapplication.js
マニフェストファイルとして指定している

プリプロセッサエンジン

マニフェストファイルを用いてアセットを統合しビュー用に準備する。

参考:Rails初学者がつまずきやすい「アセットパイプライン」

名前付きルート

get  '/help', to: 'static_pages#help'

上記のようにルートを設定するとhelp_pathやhelp_urlのような名前付きルートを使えるようになる。
help_pathとhelp_urlでは返す値が違う。

help_path -> '/help'
help_url  -> 'https://www.example.com/help'

Railsチュートリアルでは基本的に〇〇_pathを使い、リダイレクトするときのみ〇〇_urlを使う。HTTPの標準としてはリダイレクトするときは完全なURLが要求されるから_urlを使う。

統合テスト

複数のアプリケーションの機能が連動しているか、そして連動している処理が正常に動くかを確かめるテストのこと。

$ rails generate integration_test 統合テスト名

演習メモ

5.3.4の演習でApplicationヘルパーをテストで使えるようにインクルードしている。

おわりに

5章ではメインページのレイアウトを作成して、リンクを追加することで別のページと行き来することができるようになりました。

アセットパイプラインが雰囲気しかわかっていないからちゃんと理解しないと、、、

今度テストについてまとめたいです!