アプリ作成の流れ(MVC)
雛形作成
$ rails new アプリ名
$ rails _6.0.0_ new アプリ名
#railsのバージョン指定 指定しなければ、インストールされているrailsのバージョンが指定される
$ rails new アプリ名 -d DB
#DBを指定したコマンド デフォルトはsqlite
DB作成
rails new
で新しくアプリケーション部分が作成されたので、次は、DBを作成する。
$ rails db:create
デフォルトでは、development(開発)にDBが作成される
$ rails db:create RAILS_ENV=production
production(本番)にDBを作成したい場合はこのコマンド
ルーティングの設定
ルーティングは、クライアントからのリクエストに対して、どう処理してやるのかの道標です。
app/config/routes.rbにルーティングを記載していきます。
Rails.application.routes.draw do
(HTTPメソッド 'URIパターン', to: 'コントローラー名#アクション名')
get "posts", to: "posts#index"
end
コントローラーの作成
MVCの一つで、リクエストに対する処理を決める場所です。
rails gコマンド
railsに必要なファイルを生成するためのコマンド
$ rails g "ファイルの種類" "生成するファイル名"
コントローラーを作成する場合は、命名規則に気をつけて作成する必要があります。
コントローラー名は複数形で作成しなければなりません。
$ rails g controller posts
コントローラー名を間違えた場合は、
$ rails d controller posts
で作成したファイルを削除できるので、改名後に再度rails g
してやります。
####コントローラーにアクションを定義する
-
index
一覧表示ページを表示するリクエストに対応して動く -
new
新規投稿ページを表示するリクエストに対応して動く -
create
データの投稿を行うリクエストに対応して動く -
show
個別詳細ページを表示するリクエストに対応して動く -
edit
投稿編集ページを表示するリクエストに対応して動く -
update
データの編集を行うリクエストに対応して動く -
destroy
データの削除を行うリクエストに対応して動く
ビューの作成
ERBを利用することで、HTMLファイルなどの異なるファイルにRubyの記述を埋め込むための仕組みのことで、ファイル名.html.erb
内にRubyのコードを埋め込むことができるようになります。
データベースとテーブル、モデル
データベースはアプリケーションで保存される様々なデータを保存する場所で、アプリケーションにはほぼ必須のものです。
データベースはデータを保存するところ、テーブルを使って目的別にデータを保存できるようにします。
テーブルには行(レコード)とカラム(列)が存在し、データを管理しています。
モデルはテーブルを管理するもので、データを保存したり、データを取得して画面上に表示するために必要なもので、テーブルごとにモデルは対応しています。
モデル作成するコマンドは
$ rails g model モデル名
で作成することができ、モデル名には命名規則があって、単数形を使用しなければなりません。
####マイグレーション
rails g model
コマンドで作成されるファイルで、データベース(テーブル)の設計書・仕様書になります。
テーブルの使用をこのファイルに記載してデータベースに反映させることで、意図的なデータベースが作成できます。
postというモデルを作成した場合
class CreatePosts < ActiveRecord::Migration[6.0]
def change
create_table :posts do |t|
t.text :memo
t.timestamps
end
end
end
t.text :memo
と記載することで、text型のメモカラムが作成できるようになります。
マイグレーションファイルを作成、定義したら、それを
$ rails db:migrate
コマンドを実行することで、マイグレーションをDBに反映させることができます。
マイグレーションファイルを修正する場合は、一度ロールバックをして、statusをdown
状態にしないといけません。
$ rails db:rollback
$ rails db:migrate:status
#このコマンドでマイグレーションファイルのstatus状況を確認することができます。
ActiveRecordメソッド
ActiveRecordメソッドとは、モデルがテーブル操作を利用して使用できるメソッドの総称です。
ActiveRecordメソッドを利用することで、直感的にテーブルを操作することができるようになります。
ActiveRecordメソッドの例(all,findメソッド)
Post.all
#postテーブルのすべての値を取得する
Post.find(1)
#postテーブルの1行目のレコードの値を取得する