Railsドキュメント

Railsの基礎知識

Ruby on Railsとは

説明

Rubyにより構築されたWEBアプリケーションフレームワーク

設計哲学

  • 設定より規約(CoC)
  • 同じ作業を繰り返さない(DRY)

特徴

  • MVCモデルを採用
  • ジェネレータ(scaffold)
  • アジャイルな開発に適している
  • ルーティング
  • テンプレート
  • データベースの管理方法

規約

ファイル名の規約

ディレクトリ ファイル クラス名 親クラス
app/controllers/ xxxs_controller.rb XxxController ApplicationController
app/models/ xxx.rb Xxx ActiveRecord::Base
app/views/xxxs/ yyy.html.erb    
app/views/layouts/ xxx.html.erb    
app/helpers/ xxxs_helper.rb    
db/migrate/ YYYYMMDDhhmiss_mmm_xxxs.rb MmmXxxs ActiveRecord::Migration
test/fixtures/ xxx.yml    
  • xxx : コントローラ名、モデル名
  • yyy : アクション名
  • mmm: マイグレーション名
  • YYYYMMDDhhmissは作成日時が入る

テーブル定義についての規約

テーブル名とクラス名

  • テーブル名は複数形
  • 単語の区切りはアンダーバー(_)
  • 対応するクラス名は単語の先頭を大文字にして _ を取り除いたもの

キーのカラム名

  • 主キーのカラム名は「id」
  • 外部キーのカラム名は「テーブル名の単数_id」

日付関連のカラム名

  • DATE型のカラムには名前を「受動態_on」
  • TIMESTAMP型のカラムには名前を「受動態_at」
  • 更新日時、作成日時は「updated_at」「created_at」

結合テーブル

  • 関連させたいテーブル名をくっつけた名前
  • カラム「id」を作らずに、関連させる2つのキーのセットを主キー

Railsの実行環境

概要

実行するときの3つの実行環境

  • development
  • test
  • production

development

概要

開発中に使用する環境

特徴

  • 実行環境の指定がなければこの環境で起動
  • ログレベルはdebug
  • 書き換えた内容がすぐに反映
  • キャッシュが無効

test

概要

自動テストで使用する環境

特徴

  • ログレベルはdebug
  • キャッシュが有効

production

概要

本番稼働で使用する環境

特徴

  • ログレベルはinfo
  • キャッシュが有効
  • 書き換えた内容の反映には、再起動が必要

フォルダ構造

フォルダとファイルの役割

ファイル名 説明
babel.config.js BabelというJavaScript用の設定ファイル
config.ru Rack用のファイル
Gemfile Gemというパッケージマネージャで依存関係を指定できるファイル
Gemfile.lock Gemfileから実際にインストールされたGemの一覧とバージョン
package.json npmというJavaScriptのパッケージ管理するツール用の設定ファイル
postcss.config.js PostCssというCSS関連のプログラム用の設定ファイル
Rakefile RakeというRubyのビルドツール用のファイル
yam.lock yamlというパッケージ管理ツール用のファイル
README.md 作ったアプリケーションの説明を記述するREADMEファイル
.git Git用のディレクトリ
app/ アプリケーション用のディレクトリ
app/assets/ アプリケーション用のリソースを置くディレクトリ
app/assets/config/ 環境に関するものを管理するファイル用のディレクトリ
app/assets/images/ 画像用のディレクトリ
app/assets/stylesheets/ 公開するスタイルシート用のディレクトリ
app/channels/ Action Cableファイル用のディレクトリ
app/controllers/ コントローラ用のディレクトリ
app/controllers/application_controller.rb アプリケーションで共通のコントローラ
app/helpers/ ヘルパー用のディレクトリ
app/helpers/application_controller.rb アプリケーションで共通のヘルパー
app/javascript JavaScript関連のスクリプト用のディレクトリ
app/jobs Active Job用のディレクトリ
app/mailers/ Action Mailerファイル用のディレクトリ
app/mailers/application_mailer.rb Action Mailerのコントローラ
app/models/ モデル用のディレクトリ
app/views/ ビュー用のディレクトリ
app/views/layouts/ ビューのレイアウト用のRHTMLテンプレート用のディレクトリ
app/views/layouts/application.html.erb アプリケーションで共通のレイアウト
app/views/layouts/mailer.html.erb Action MailerのHTMLレイアウト
app/views/layouts/mailer.text.erb Action Mailerのテキストレイアウト
bin/ アプリケションを管理する様々なスクリプト用のディレクトリ
config/ アプリケーションの設定ファイル用のディレクトリ
config/environments/ 環境単位の設定ファイル用のディレクトリ
config/initializers/ 初期化ファイル用のディレクトリ
config/locales/ 辞書ファイル用のディレクトリ
db/ データベース関連のファイル用のディレクトリ
db/seeds.rb 初期データを生成するファイル
lib/ 複数のアプリケーション間で共有するライブラリ用のディレクトリ
lib/assets/ 自分で生成したライブラリ用のディレクトリ
lib/tasks/ 自分で生成したRakefile用のディレクトリ
log/ ログファイル用のディレクトリ
node_modules npmというJavaScriptのパッケージ管理ツールがインストールするディレクトリ
public/ Web上に公開するファイル用のディレクトリ
storage/ ファイルのアップロードで保存されるディレクトリ
tmp/ キャッシュなど、一時的なファイル用のディレクトリ
test/ アプリケーションのテストに使うファイル用のディレクトリ
temp 一時ファイル用のディレクトリ
vendor/ 外部ライブラリ用のディレクトリ
.browserslistrc bowerというパッケージツール用の設定ファイル
.gitignore Gitに登録しないファイルを指定
.ruby-version Rubyのデフォルトバージョン

アプリケーション作成の流れ

  1. 作業ディレクトリの作成

    $ mkdir rails
    $ cd rails
    
  2. アプリケーション作成

    $ rails new demo
    
  3. ディレクトリ移動

    $ cd demo
    
  4. ジェネレータ

    $ rails generate controller Welcome index
    
  5. ルーティング

    $ vim config/routes.rb
    Rails.application.routes.draw do
      get 'welcome/index'
      root 'welcome#index'
    end
    
  6. サーバ起動

    $ rails server
    # http://localhost:3000にアクセス