0
0

More than 1 year has passed since last update.

rails command 流れ 随時更新

Last updated at Posted at 2023-07-17

準備

mkdir rails-tutorial

cd rails-tutorial/

gem install bundler

//bundlerはパッケージ管理ツール

//railsはgemというパッケージ管理ツールを使うが、それだと不便なのでbundlerも使う

bundle init //Gemfileが自動で作成される

//Gemfileの最後の行に gem “rails”を付け足す

bundle install —path vendor/bundle

//Gemfileの最後の行に書いた gem “rails”のパッケージがインストールされる。vendor/bundleフォルダの下にrailsのソースコードがインストールされる。

rails new .

rails s //サーバー起動

APIモード

rails new blog-api —api -T

//-Tはテストモードがスキップされる。雛形作成

  • rails generatemodel Post title:string content:text
    // モデルが作成される
  • rails db:migrate
    //テーブルが作成される。ブログ投稿や取得ができるようになる

トップページ自動生成

新しいページを作るコマンド

rails generate controller home top
  • 「rails generate controller home top」を実行すると、
    viewsフォルダの中に「homeフォルダ」と「top.html.erb」という
    ファイルが作成されます。
  • localhost:3000/home/top 検索
  • Home#top
    Find me in app/views/home/top.html.erb
    と表示される
  • 「home_controller.rb」というコントローラのファイルが作成され、ファイルの中に「topメソッド」が追加されます。
    コントローラ内のメソッドを「アクション」と呼びます。
class HomeController < ApplicationController
  def top
  end
end
  • CSSファイルは「app/assets/stylesheets」フォルダに入っています。CSSファイル(home.scss)も自動生成されます。

新しいページを作るコマンド

rails generate ...

rails g controller と省略可


ルーティングの役割

Rails内ではコントローラを経由してビューを返していますが、ブラウザとコントローラを繋ぐ役割を担うのがルーティングです。
ページが表示されるまでに、ルーティング→コントローラ→ビューという順で処理が行われていることを理解しておきましょう。

config/router.rb

Rails.application.routes.draw do
  get "home/top" => "home#top"
end

#posts コントローラー

rails g controller posts index

posts コントローラ名
index アクション名

テーブル作成の準備

マイグレーションファイルと呼ばれる、データベースに変更を指示するためのファイルを作成。

rails g model Post content:text

Post postsテーブルを作る場合はPostと単数形にする
content カラム名(列)
text データ型
コマンドを実行すると、db/migrateフォルダの下にマイグレーションファイルが作成されます。

このコマンドによって、以下の2つのファイルが作成されます。
・app/modelsフォルダにモデルが定義されたファイル
テーブルを操作するためのモデルと呼ばれる特殊なクラスを用いて、データベースを使う
・db/migrateフォルダにマイグレーションファイル

テーブルを用意しよう

rails db:migrate

データベースに変更を反映する
コマンドを実行すると、マイグレーションファイルに書いてある指示通りにテーブルを作ってくれる

0
0
0

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