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