0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ruby on Rails初心者が学んだこと・はまったこと

Posted at

はじめに

プログラミング初心者の私が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)という思想があり、
最初は戸惑いましたが、慣れると少ないコードで多くのことができて便利です!

エラーメッセージをよく読むこと、公式ドキュメントを確認することが大事だと学びました。

参考資料

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?