Closed4

📚 パーフェクトRuby on Rails【増補改訂版】

Haruya IzumiHaruya Izumi

1章 Ruby on Railsの概要

rakeコマンドとは

makeコマンド風にタスクを実行するためのタスクランナーで実行する処理をRakeタスクと呼ぶ

bundleコマンド

よく使用されるBundlerのサブコマンド

サブコマンドとは、あるコマンド(命令)の下で実行される下位のコマンド

コマンド 概要
bundle install Gemfile(.lock)に書かれているgemパッケージをインストールする
bundle update [ライブラリ名] インストール済みのgemパッケージのバージョンを更新する
bundle list インストール済みのgemパッケージの一覧を表示する
bundle init Gemfileを生成する
bundle exec [コマンド名] Bundlerでインストールされてるgemパッケージを使用してコマンドを実行できる

Railsの思想

COC(Convention over Configuration) 設定より規約

例えば... 以下のような規約がある

  • データベースのテーブル名はモデルの複数形にする(モデル名:User の場合 テーブル名:users
  • /usersというURLはユーザー一覧を表す
  • ユーザーID:1を表すURLは /users/1 である

DRY(Don't Repeat Yourself) 同じことを繰り返さないという意味

REST(Representational State Transfer) すべてのリソースは一意となる識別子である

自動テスト RubyやRailsでは自動テストを行うことを重要視する

https://qiita.com/jnchito/items/2a5d3e15761fd413657a

Haruya IzumiHaruya Izumi

2章 Ruby on RailsとMVC

MVCアーキテクチャ

  • モデルについて少し詳しく

https://bow-caboc-7f4.notion.site/Model-5443be4e4ce041e0b96bbdcdcecb8d19

  • マイグレーションについて詳しく

https://zenn.dev/kousei_089/articles/schema_migrations

  • ActiveRecord::Relationについて少し深堀り

https://bow-caboc-7f4.notion.site/ActiveRecord-Relation-210e99b02a3046ca9ba1b8af2ca08267

コールバックとトランザクションの使い分け

  • コールバックは、ライフサイクルの中で副作用的に行う時に使用する

コールバックを起動する条件の設定とかもできる(本書P72

  • トランザクションは、複数の処理をまとめて1つの大きな処理として扱う機能

https://zenn.dev/neko_engineer/articles/fe8c19d5c26763

APIサーバとJSON

jbuilderの使い方など

https://bow-caboc-7f4.notion.site/API-JSON-2cca8164964746c3ae5c3cfbec9bee0b

Haruya IzumiHaruya Izumi

4章 フロントエンドの開発手法

Webpackerの概要

Webpackerのエントリーポイント

  • app/javascript配下で作業を行い、ビルド結果はpublic/pack/jsへ出力する
  • エントリーポイントの読み込み javascript_pack_tagメソッドを使う
  • JSのコンパイルの細かい設定を行いたい場合はbabel.config.jsを編集する
パス 内容
app/javascript/packs エントリーファイルを置く場所
app/javascript エントリーファイルから読み込まれるモジュールを置く場所
config/webpacker.yml Webpackerの設定ファイル
config/webpack/*.js 最終的なwebpackの設定を出力する場所
babel.config.js babel用の設定ファイル
.browserlistrc コンパイル対象となるブラウザ環境を記述するファイル

Webpackerの関しての知識

  • Rails6.0のCSS・画像の管理は、デフォルトではSprocketsで管理しているが、Webpackerで管理することもできる
  • webpack-dev-serverを起動させておけばバックグラウンドで変更の都度ビルドしてくれる

Sprockets

https://github.com/rails/sprockets#default-directives

Sprocketsの関しての知識

  • application.html内部のstyleshee_link_tagメソッドは、SprocketsでCSSをビルドした結果を反映する

rails-ujs

Turbolinks

Turbolinksの関しての知識

  • Turbolinksは独自のメソッドを利用している(onloadDOMContentLoadedなどのイベントは発火しない)
  • ただし、独自メソッドを使用していることでほかのJSライブラリとうまく噛み合わないときがあるので注意が必要である(Chart.jsの再リロードなどがうまくいかないエラーなどが出た)

https://github.com/turbolinks/turbolinks

このスクラップは2022/06/03にクローズされました