Ruby on Rails 実践ガイド
開発環境の構築
Dockerとは
Dockerは仮想環境を提供するオープンソース・ソフトウェアです。
設定の容易さや起動の速さなどの理由により人気
Dockerでは個人の仮想構築をコンテナと呼びます。
コンテナの内容 はDockerfileと呼ぶテキストエディターで書く
Docker Compose
Dockerを用いてRailsアプリケーションを開発したり
プロダクション環境で動かすときRailsアプリケーション
とデータベースサーバーを別なコンテナとして構築するのが一般
Docker Compose はこれらのふくすうのコンテナをまとめて起動・停止
するためのツールです。
開発プロジェクト
新規アプリケーションの作成
web コンテナへのログイン
Dockerコンテナ上で顧客管理Baukis2の開発
Dockerを動かしているホストOSとRailsアプリケーション
が動く
docker-compose exec web bash
Railsのバージョン
rails --version
exit
初期ソースコードの生成
rails new baukis2 -d postgresql --skip-test-unit
ディレクトリの中を見るコマンド
ls -a
Gemパッケージのインストール
Gemfileの編集
ホストOS側でbaukis2ディレクトリを開いてGemfileファイルを見つけ
コメント行を消してダブルクォートに置換する
Lunix系OSで不要な最終行を取り除く
Baukis2で使用するGemパッケージ郡を組み込む
gem "bootsnap", ">= 1.4.2", require: false
gem "bcrypt"
gem "rails-i18n"
gem "kaminari"
gem "date_validator"
gem "valid_emai12"
gem "nokogiri"
gem "bcrypt":パスワードを暗号化
gem "rails -i18n":翻訳ファイルを集めたGemパッケージ
gem "kaminari":ページネーション機能
gem "date_validator": 日付のバリデーションを行う
gem "valid_emai12": メールアドレスのバリデーションを行う
gem "nokogiri": HTMLの解析のGemパッケージ
テストフレームワークRspecのGemパッケージ郡を埋め込み
group :test do
gem "capybara", ">= 2.15"
gem "selenium-webdriver"
gem "rspec-rails"
gem "factory_bot_rails"
end
bin/bundle コマンドの実行
gemパッケージ郡をインストールしてくれる。
cd baukis2
bin/bundle
JavaScript パッケージ郡のインストール
$ yarn
Rspec
RSpecの基礎知識
RSpecはテストフレームワーク。RSpecは簡潔で読みやすいテストコードを書くことができRailsアプリケーションの保守性を高める
テストとは
人がWebアプリケーションの動きを目視でチェックする作業
ソフトウェアによって自動で実施されるテスト
RSpecの初期設定
bin/rails g rspec:isntall
Rspecの一歩
requir "spec_helper"
descirbe String do
describe "#<<" do
example "文字の追加" do
s = "ABC"
s << "D"
expect(s.size).to eq(4)
end
end
end
Rspecのコードはspecディレクトリーの下に置く
ファイル名の末尾は_spec.rbで終わるようにする。
ファイル名をspecファイルという
specファイルはspecサブディレクトリに適宜している
エグザムプル
Rspecはビヘイビア駆動開発をプログラム開発手法でRubyを実践するために作られたテストフレームワーク。Rspecは独特の用語を持っている
exampleメソッドの引数によってエグザムプルを説明する短文を指定する。
エグザンプルグループ
describeとendで囲まれた部分がエグザンプルグループ
エグザンプルグループは入れ子構造になっている。
ビジュアルデザイン
ルーティング設定
利用者の種類(職員、管理者、顧客)別にトップページのURL
を設定ファイルで自由に変更出来ることになっている。
Rails.application.routes.draw do
namespace :staff do
root "top#index"
end
namespace :admin do
root "top#index"
end
namespace :customer do
root "top#index"
end
end
config/routes.rbはルーティングを設定するファイル
rootはクライアントがルートURLパスにアクセスした場合にアクション処理を受け持つ
コントローラーとアクションの作成
bin/rails g controller staff/top
bin/rails g controller admin/top
bin/rails g controller customer/top
Rails用語のアクションとはコントローラークラスのpubicなインスタンスメソッド
render action: "index"
HTMLを作るのはERBライブラリを生成
ERBで解釈可能なことをERBテンプレート
ERBテンプレートの生成
index.html.erb
<% @title = " 職員トップページ" %>
<h1><%= @title %></h1>
レイアウト
HTMLソースコードでは、h1要素をbodyタグが囲みさらにhtmlタグが囲む
このERBテンプレートをレイアウトという
部分テンプレート
共通する部分を新しいファイルに書く
ヘルパーメソッドの定義
ERBテンプレートの中で使用できるメソッド
部分テンプレートを読み込むrenderも一種
この記事が気に入ったらサポートをしてみませんか?