【初心者向け】RailsでViewに表示するまでの一連の流れまとめ

CODE
のり
のり

Ruby on Railsで、Webアプリケーション開発をするときに最初何からやればいいかすぐに忘れてしまう。一連の流れを簡単に振り返りたい

こんな意見に答える記事です。かなり簡単に書いています。

Railsに乗せるまでの流れ

プロジェクトの開始から“Yay! You’re on Rails!” が表示されるまでの流れを記載します。

プロジェクトの開始

$ rails _5.2.2_ new プロジェクト名 --database=mysql --skip-bundle --skip-test

railsは versionを指定するようにしています。今回は 5.2.2。また、SQLはmysqlを使い、bundleや自動テストはスキップします。

サーバーの起動

プロジェクトのフォルダまで移動させて以下を実行します。

$ rails s

MySQLの起動

$ sudo service mysqld start

データベースの作成

$ rails db:create

実行すると、”プロジェクト名_development”と”プロジェクト名_test”のデータベースが作成されます。

サーバーの再起動

Ctrl + cでサーバーを一度落として、もう一度サーバーを立ち上げましょう。

$ rails s

これでブラウザでアクセスすると“Yay! You’re on Rails!” が表示されるはずです。

Model

Modelとは?

データベース(リソース)のCRUD操作をおこなう機能であり、リソースそのもの。データベースのレコード1つが、Model のインスタンス1つに対応しています。
開発を始めるときはまずModelから始めましょう。

Modelをいきなり作る前にER図を作っておくと良いです。ER図はデータベースのエンティティ(テーブル)の関係を表した図です。これに必要なカラムなどを記載しておくとModelを作る時に楽です。

Modelの作成

$ rails generate model モデル名 カラム名:データ型 カラム名:データ型 ・・・

モデル名は英単語の単数形にしましょう。データ型については、この記事を参考にしてみてください。

そうすると以下のようなファイルがcreateされます。

app/models/モデル名(先頭大文字).rb
db/migrate/yyyymmddhhmmss_create_モデル名.rb

マイグレーションファイルを見て、特に変更がなければマイグレーションをしましょう。

マイグレーションの実行

$ rails db:migrate

これでデータベースに反映がされました。もう先程のマイグレーションファイルは変更しないようにしましょう。

マイグレーションの確認

MySQL ログイン
$ mysql -u root

データベースの選択
mysql> use データベース名_development

テーブル一覧確認
mysql> show tables;

テーブル設計の確認
mysql> describe テーブル名(モデル名の複数形になっている);

rails consoleでモデルの確認とデータの作成

$ rails c

例 ユーザーの作成

> user = User.new(name: 'nori' ,email: 'xxxxxxx@gmail.com' ,・・・ )
> uer.save

# 更新の場合は
> uer.update(name: 'nori-san')

# 削除の場合は
> uer.destroy

ここでのUserはモデル。userはインスタンス変数を表します。

例 ユーザーの取得

# 全件取得
> users = User.all

# 最初の1件取得(second,thirdも可)
> user = User.first

# IDで取得
> user = User.find(1)

# ID以外で1件取得
> user = User.findby(name: 'nori')

# 条件で取得
> users = User.where('id >= 2')

Router

Routerに記載されているルーティングは、Webアプリケーションの全ての機能リストと同じです。そして、開発する時には、以下の手順で物事が決まっていくと覚えましょう。

  • どんな機能(CRUDなど)を作るのかを決める
  • そのためのルーティングを決める(root: toppage)
  • ルーティングが決まるとControllerのメソッドが決まる
  • Controllerのメソッドが決まるとViewの名前が決まる

まずどんな機能(CRUDなど)かを決めて、そのためのルーティング(Router)を決めて、ルーティングが決まると Controller のメソッドが決まり、 Controller のメソッドが決まると View の名前が決まります。

RESTfulなルーティング

Rails.application.routes.draw do
  get 'users', to: 'users#index'
  get 'users/:id', to: 'users#show'
  get 'users/new', to: 'users#new'
  post 'users', to: 'users#create'
  get 'users/:id/edit', to: 'users#edit'
  put 'users/:id', to: 'users#update'
  delete 'users/:id', to: 'users#destroy'
end

上記のように、リソースの CRUD 操作のために必要な7つのルーティングをRESTful なルーティングと言います。上記は以下のように書き換え可能です。

Rails.application.routes.draw do
  resources :users
end

また、7つ全部必要でないときは以下のように記載することも出来ます。

Rails.application.routes.draw do
  resources :users, only: [:index, :show, :new, :create]
end

Routerの確認

$ rails routes

ControllerとView

Controllerの作成

$ rails g controller コントローラ名 アクション名, アクション名, ・・・

コントローラー名はモデルの複数形で記述します。アクション名は記載しない場合は自分でアクションの記載やviewファイルを作成することになります。

アクション名を入力してCotrollerを作成した場合は、Viewは自動的に作成されます。

ブラウザで確認をしてみると指定したページが表示されます。

最後に

いかがでしたか?

ここまでは、最低限の知識です。それぞれの機能実装については、別の記事でまとめたいと思います。これから先、色々な機能を実装していきましょう。

コメント

タイトルとURLをコピーしました