アプリを新規作成
ターミナルにて下記コマンドで新規アプリを生成
$rails new [アプリ名]
例)
$rails new sampleapp
モデルを作成
モデルはデータベースとデータのやりとりを行うため、
モデルを使用する際には同時にそれに対応するデータベースのテーブルも必要。
モデルを作成する前に、RubyからSQLを操作するために必要な
マイグレーションという機能を使用できるようにする。
そしてマイグレーションを使用するためにマイグレーションファイルを下記コマンドで作成する。
$rails generate migration [クラス名]
例)
$rails new sampleapp
とりあえず最低限テーブルが作成されれば良いのであれば、
ターミナルにて下記コマンドでモデルとテーブルを生成できる。
$rails g model [モデル名] [テーブル名]
例)
$rails g model Member members
もしテーブル作成と同時にカラムも追加したければ
下記コマンドを使用すれば良い。
$rails g model [モデル名] [カラム名]:[型] [カラム名]:[型] ・・・
例)
$rails g model Member name:varchar
モデル周りの命名規則は下にまとめた通り
対象 | 規則 | 例 |
---|---|---|
モデル名 | 単数形 / 小文字はじまり | member |
モデルクラス名 | 単数形 / 大文字はじまり | Member |
ファイル名 | 単数形 / 小文字はじまり | member.rb |
テーブル名 | 複数形 / 小文字はじまり | members |
テーブルを生成したり、データベースに変更を加えたい際は
コマンド実行後その変更をDBに反映するため下記コマンドを実行する。
$rake db:migrate
とりあえず最初はモデルクラスの中には何も記述しなくても問題ない。
class Member < ApplicationRecord
end
コントローラの作成
ターミナルにて下記コマンドでコントローラを生成
$rails g controller [コントローラ名]
$rails g controller members
コントローラ周りの命名規則は下にまとめた通り
対象 | 規則 | 例 |
---|---|---|
コントローラ名 | 複数形 / スネークケース | members |
コントローラクラス名 | 複数形 / キャメルケース | MembersController |
ファイル名 | 複数形 / スネークケース | members_controller.rb |
app > controllers 内にコントローラファイルを生成できたら、
クラスの中に必要なアクションを定義していく。
class MembersController < ApplicationController
// indexアクションを定義
def index
@members = Member.all
end
end
ルーティング
作成したアクションにURLを割り当てる作業をしていく。
config > routes.rb ファイルを適当に編集する。
Rails.application.routes.draw do
#get "URL" => "コントローラ名#アクション名"
get "momocloapp" => "top#index"
get "momocloapp/members" => "members#index"
get "momocloapp/member/:id" => "members#show"
end
ルーティングの確認
$rake routes
ビューの作成
実際に表示される「ページの見た目」を作る。
app/views/[モデル名のフォルダ] 内にhtmlファイルを作成し適当に記述する。
<h1>Members</h1>
<ul>
<% @members.each do |member| %>
<li><%= member.name %></li>
<% end %>
</ul>
今回はモデル作成時に生成したmembersテーブルのnameカラムにデータを挿入し、
membersテーブルに挿入されたメンバー全員の名前を表示するシンプルなページを作成した。
ローカルで見てみる
実際に作成したページをローカルで見てみる。
下記コマンドでローカルホストを立てる。
$rails s
成功したらブラウザで http://localhost:3000/ を開くと
作成したページが見られるはず。