Railsチュートリアルを終えたので、学んだことを整理していきたいと思います。
##ディレクトリ構成
よく使うファイル、ディレクトリだけを抜粋します。
app
├── assets/ # 画像ファイル、CSS、Javarcriptなど
├── controllers/ # コントローラー
├── helpers/ # ヘルパー関数
├── mailers/ # メール送信の設定
├── models/ # DBの各テーブルに紐づいた設定(関数、バリデーションなど)
├── uploaders/ # ファイルアップロード周りの設定
├── views/ # ビューファイル
config
├── routes.rb # ルーティングの設定
db
├── migrate/ # DBの構成変更に関するファイル
├── seeds.rb # DBに入れるデータ
public/ # 404エラーページなど
test
├── controllers/ # コントローラーのテスト
├── fixtures/ # テスト用のサンプルデータ
├── helpers/ # ?
├── integration/ # 統合テスト
├── mailers/ # メイラーのテスト
├── models/ # モデルのテスト
├── test_helper.rb # テスト用のヘルパー関数
Gemfile # 使いたいGemのリスト
Gemfile.lock # Gemを使うための記述
##コマンド
####プロジェクトを作成
rails new {プロジェクト名}
$ rails new sample_app
####ローカルサーバーを起動
$ rails s
####Railsコンソールを起動
Railsコンソールを使うことで、現在の設定(関数、データベース、gemなど)を引き継いだ状態でRubyのコードを実行することができます。
$ rails c
$ rails c --sandbox #コンソールでの実行内容をDB等に反映しない
####テストを実行
$ rails t
####コントローラーを作成
rails g {コントローラー名} {アクション名}
コントローラー名は頭文字大文字の複数形
$ rails g controller Users
$ rails g controller Users new show index #中身が空の「new,show,index」アクションを生成
作られるファイル
controller、view、test/controllers、test/helpers、scss、js
####モデルを作成
rails g model {モデル名} {カラム名:型}
モデル名は頭文字大文字の単数形
新規テーブルを作成する時に使います。
$ rails g model User name:string age:integer
作られるファイル
migration、model、test/model、test/fixture
####マイグレーションファイルを作成
rails g migration {マイグレーションファイル名}
既存テーブルの構造を変更したい時(カラムの追加など)に使います。
マイグレーションファイル名は、作成目的がわかるように命名します。
$ rails g migration AddNicknameToUser
作れられるファイル
migration
カラム追加、カラム削除、テーブル作成を行う場合には、以下のようなマイグレーションファイル名をつけると、必要なコードが途中まで書かれている状態でファイルが作成されます。
変更内容 | マイグレーションファイル名 |
---|---|
カラム追加 | Addカラム名Toテーブル名 |
カラム削除 | Removeカラム名Fromテーブル名 |
テーブル作成 | Createテーブル名 |
####マイグレーションファイルを適用
$ rails db:migrate
####適用したマイグレーションをロールバック
$ rails db:rollback
####統合テスト用ファイルを作成
rails g integration_test {ファイル名}
$ rails g integration_test users_login_test
####gemをインストール
Gemfileに記述したgemをインストールします。
$ bundle install
##参考
Rails generate の使い方とコントローラーやモデルの命名規則
【Rails】マイグレーションファイルを徹底解説!