はじめに
プログラミング初心者の私がRuby on Railsを学び始めて、つまずいたポイントや「なるほど!」と思ったことをまとめました。
同じように学習している方の参考になれば嬉しいです。
環境
- Ruby 3.x
- Rails 7.x
- macOS / Windows
学んだこと
1. MVCアーキテクチャの理解
最初はMVCって何?状態でした。
- Model: データベースとやり取りする部分
- View: ユーザーが見る画面(HTML)
- Controller: ModelとViewの橋渡し役
# Controller例
class ArticlesController < ApplicationController
def index
@articles = Article.all # Modelからデータ取得
end
end
2. ルーティングの仕組み
config/routes.rbでURLとコントローラーを紐付けることを知りました。
Rails.application.routes.draw do
resources :articles
end
resources一行で7つのルートが自動生成されるのは便利!
3. マイグレーションファイル
データベースのテーブル構造を管理する仕組み。
最初は直接DBをいじろうとしてました...
class CreateArticles < ActiveRecord::Migration[7.0]
def change
create_table :articles do |t|
t.string :title
t.text :content
t.timestamps
end
end
end
はまったこと
1. サーバーが起動しない
エラー: Could not find gem 'xxx'
解決法:
bundle install
を忘れていました。Gemfileを編集したら必ず実行!
2. ルーティングエラー
エラー: No route matches [GET] "/articles"
原因: routes.rbにルートを定義していなかった
解決法:
resources :articles
を追加してrails routesで確認する癖をつけました。
4. マイグレーション実行忘れ
マイグレーションファイルを作っただけで満足してました。
rails db:migrate
を実行しないとDBに反映されない!
5. 変数名の@の有無
コントローラーで@articles(インスタンス変数)にしないと、Viewで使えない。
最初は普通の変数articlesにしてて「なんで表示されないの?」状態でした。
# NG
def index
articles = Article.all
end
# OK
def index
@articles = Article.all
end
便利だと思ったコマンド
# モデル、マイグレーション、コントローラーを一気に作成
rails generate scaffold Article title:string content:text
# コンソールでデータ確認
rails console
# ルート確認
rails routes
# サーバー起動
rails server
まとめ
Railsは「規約より設定」(Convention over Configuration)という思想があり、
最初は戸惑いましたが、慣れると少ないコードで多くのことができて便利です!
エラーメッセージをよく読むこと、公式ドキュメントを確認することが大事だと学びました。