データーベース

Ruby

【Ruby on Rails】N+1問題とincludesでの解決方法

こんにちは、かつコーチです。開発中は問題なく動いていたのに、本番データが増えた途端に画面表示が極端に遅くなる。Railsを使っていると一度は経験する現象ですが、その原因の多くがN+1問題(関連データを取得する際に、1件ごとに追加のクエリが発...
Ruby

【Ruby on Rails】スコープとクエリメソッドで検索条件を整理する

こんにちは、かつコーチです。コントローラのアクションが増えてくると、whereやorderを使った検索条件があちこちに散らばりがちです。同じような条件を何度も書いていたり、条件が複雑になって可読性が落ちていたりする経験はありませんか。Rai...
Ruby

【Ruby on Rails】バリデーションの基本

こんにちは、かつコーチです。フォームからデータを保存する機能を作っていると、「空欄のまま保存されてしまう」「同じメールアドレスで何人も登録できてしまう」といった困りごとに出会います。こうした不正なデータの保存を防ぐ仕組みが、Railsのバリ...
Ruby

【Ruby on Rails】アソシエーション(has_many・belongs_to)の書き方

こんにちは、かつコーチです。Railsでモデルを作っていると、必ず出てくるのが「モデル同士の関連付け」です。たとえば「記事にはたくさんのコメントがつく」「コメントは1つの記事に属する」といった関係を、Railsではアソシエーション(モデル同...
Ruby

【Ruby on Rails】ActiveRecordの基本:モデルとCRUD操作

こんにちは、かつコーチです。Railsでデータを扱おうとすると、Post.create や Post.find といったコードを目にします。SQLを書いていないのに、なぜデータベースを操作できるのか。最初は不思議に感じるところだと思います。...
Ruby

【Ruby on Rails】マイグレーションの基本:テーブルを作成・変更する

こんにちは、かつコーチです。データベースにテーブルを作りたいとき、SQLを直接書かずに rails generate migration というコマンドを使うと聞いて、戸惑った経験はありませんか。私も最初は「なぜわざわざファイルを作ってから...