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も一種









この記事が気に入ったらサポートをしてみませんか?