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のデフォルトバージョン |
アプリケーション作成の流れ
-
作業ディレクトリの作成
$ mkdir rails $ cd rails
-
アプリケーション作成
$ rails new demo
-
ディレクトリ移動
$ cd demo
-
ジェネレータ
$ rails generate controller Welcome index
-
ルーティング
$ vim config/routes.rb Rails.application.routes.draw do get 'welcome/index' root 'welcome#index' end
-
サーバ起動
$ rails server # http://localhost:3000にアクセス