katsu-coach1215

Ruby

【Ruby on Rails】RSpecでモデルのテストを書く

こんにちは、かつコーチです。「テストは大事」と分かっていても、何をどこまで書けばいいのか迷った経験はありませんか。この記事では、RSpecの導入からモデルのバリデーション・アソシエーションのテストの書き方までを整理します。FactoryBo...
Ruby

【Ruby on Rails】CSRF対策とStrong Parametersでセキュリティを守る

こんにちは、かつコーチです。「Railsはデフォルトで安全」とよく言われますが、その裏でどんな仕組みが動いているか説明できますか。この記事では、protect_from_forgeryによるCSRF対策と、Strong Parameters...
Ruby

【Ruby on Rails】Deviseで本格的な認証機能を実装する

こんにちは、かつコーチです。自前で認証機能を作っていると、パスワードリセットやメール確認、アカウントロックなど、実装すべき機能がどんどん増えていきます。この記事では、認証gemの定番であるDeviseの導入手順と、実務でよく使う設定を整理し...
Ruby

【Ruby on Rails】has_secure_passwordで認証機能を実装する

こんにちは、かつコーチです。「ログイン機能を作りたいけど、Deviseのような大きなgemを入れるほどでもない」そんなときに便利なのが、Rails標準の機能であるhas_secure_passwordです。パスワードのハッシュ化や照合といっ...
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 というコマンドを使うと聞いて、戸惑った経験はありませんか。私も最初は「なぜわざわざファイルを作ってから...
Ruby

【Ruby on Rails】アセットパイプライン(Propshaft/Importmap)を理解する

こんにちは、かつコーチです。CSSやJavaScriptを編集したのに画面に反映されない。昔のRails記事を参考にしたら Sprockets や Webpacker という単語が出てきて、今の構成と違う気がする。Rails 8を使い始めた...
Ruby

【Ruby on Rails】RESTfulなルーティング設計(resources)の考え方

こんにちは、かつコーチです。routes.rb に resources :posts と1行書くだけで、たくさんのルートが自動生成される。初めて見たとき「便利だけど、結局何が作られているのかわからない」と感じませんでしたか。私も最初は ra...
Ruby

【Ruby on Rails】ビュー(ERB)の基本とレイアウト

こんにちは、かつコーチです。Railsでコントローラまで作れるようになると、次にぶつかる壁が「ビュー」です。<%= %> と <% %> の違いがよくわからない。application.html.erb に書いた内容がなぜか各ページに反映さ...
Ruby

【Ruby on Rails】コントローラの基本:アクションとストロングパラメータ

こんにちは、かつコーチです。「フォームを送信したのに、エラーが出て保存できない」。Rails初心者がコントローラを書き始めたときによく経験するつまずきです。この記事では、コントローラの作り方・アクションの書き方に加えて、初心者がつまずきやす...
Ruby

【Ruby on Rails】ルーティングの基本:config/routes.rbの書き方

こんにちは、かつコーチです。「コントローラは書いたのに、画面が表示されない」。Rails初心者が最初につまずくポイントの一つが、このルーティングの設定です。この記事では、config/routes.rbの基本的な書き方と、rails rou...
Ruby

【Ruby on Rails】MVCとRailsのディレクトリ構成を理解する

こんにちは、かつコーチです。「rails newでフォルダはできたけど、どこに何を書けばいいのか分からない」。Rails初心者が最初にぶつかる壁の一つです。この記事では、Railsの設計の土台となるMVCという考え方と、実際のディレクトリ構...
Ruby

【Ruby on Rails】rails newでプロジェクトを作成する手順(Rails 8対応)

こんにちは、かつコーチです。「Railsの勉強を始めたいけど、環境構築でつまずいてしまう」という声をよく聞きます。この記事では、Rails 8を前提に、rails newコマンドでプロジェクトを作成し、実際にブラウザで画面を表示するまでの手...
Ruby

【Ruby on Rails】Ruby on Railsとは?「設定より規約」のフレームワークを解説

こんにちは、かつコーチです。「Ruby on Railsって聞いたことはあるけど、結局何なのか分からない」。そんな方は多いのではないでしょうか。この記事では、Ruby on Railsが何者なのか、なぜ多くの現場で選ばれているのかを初心者向...
Ruby

【Ruby】オブジェクト指向設計の基本原則(Ruby流のSOLID入門)

こんにちは、かつコーチです。クラスやメソッドの書き方には慣れてきたけれど、規模が大きくなるとコードが読みづらくなる。そんな悩みを抱えているRubyエンジニアは多いのではないでしょうか。この記事ではSOLID原則の中でも特に効果が大きい単一責...
Ruby

【Ruby】Gemfileとbundlerの基本:パッケージ管理を理解する

こんにちは、かつコーチです。Rubyでライブラリを使おうとすると、必ず出てくるのが「Gemfile」と「bundler」という言葉です。私も最初は「gemって何?」「bundle installって何をしているの?」と、意味も分からずコマン...