Rails5.1.4(第4版)でのRails tutorialの第2章のやることのリスト(要約)と学んだことを個人的にをまとめました。なにか、訂正や間違いがあればご指摘していただけると助かります。
scaffoldを使ってToyアプリケーションの作成
1.新規作成(下準備)
2.
3.
4.
#1.新規作成(下準備)
第1章と同じ手順で
- 新規アプリを作成して
cd ~/environment
$ rails _5.1.4_ new toy_app
$ cd toy_app/
Gemfileを↓に書き換えて
source 'https://rubygems.org'
gem 'rails', '5.1.4'
gem 'puma', '3.9.1'
gem 'sass-rails', '5.0.6'
gem 'uglifier', '3.2.0'
gem 'coffee-rails', '4.2.2'
gem 'jquery-rails', '4.3.1'
gem 'turbolinks', '5.0.1'
gem 'jbuilder', '2.7.0'
group :development, :test do
gem 'sqlite3', '1.3.13'
gem 'byebug', '9.0.6', platform: :mri
end
group :development do
gem 'web-console', '3.5.1'
gem 'listen', '3.1.5'
gem 'spring', '2.0.2'
gem 'spring-watcher-listen', '2.0.1'
end
group :production do
gem 'pg', '0.20.0'
end
# Windows環境ではtzinfo-dataというgemを含める必要があります
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
Gemパッケージをインストール(アップデート)
$ bundle install --without production
[ $bundle update ]
toyアプリをバージョン管理下に置くためにローカルリポジトリを作成してcommit
$ git init
$ git add -A
$ git commit -m "Initialize repository"
リモートリポジトリを作成してtoyアプリをpush
- Bitbucketのサイトで [Create] ボタンをクリック
$ git remote add origin git@bitbucket.org:<username>/toy_app.git
$ git push -u origin --all
前章と同じようにHello Worldを表示すりためにapplication_controller.rbとroutes.rbを変更し、変更をコミット
$ git commit -am "Add hello"
本番環境にデプロイにするためにHerokuサーバーにサンプルアプリケーションの実行場所を作成しpush
$ heroku create
$ git push heroku master
下準備終わり
#2 Scaffoldでアプリ作成
- Usersリソースの作成
- ユーザー用のデータモデルと、そのモデルを表示するためのWebインターフェイスを合わせてUsersリソ ースという。Usersリソースは、ユーザーというものを、HTTPプロトコル経由で自由に作成/取得/更新/削除できるオブジェクト。
- scaffoldを使えば簡単にUsersリソースを作成することができる。
$ rails generate scaffold User name:string email:string
- 新しいデータモデルでデータベースを更新する
$ rails db:migrate
resources :users
というルーティングルールが追加される
Rails.application.routes.draw do
resources :users
root 'users#index'
end
class UsersController < ApplicationController
.
.
.
def index
.
.
.
end
def show
.
.
.
end
def new
.
.
.
end
def edit
.
.
.
end
def create
.
.
.
end
def update
.
.
.
end
def destroy
.
.
.
end
end
index、show、new、editアクションはいずれもページを出力しているが、
create、update、destroyはページを出力せずにデータベース上のユーザー情報を操作する。
-
継承
-
Controller controllers/users_controller.rbは
Users_controller >> ApplicationController >> ActionController::Base を継承
-
Controller controllers/users_controller.rbは
-
Model models/user.rbは
User >> ApplicationRecord >> ActiveRecord::Base を継承
#3
#4