セットアップ
rails new
アプリケーションの新規作成。
rails new
オプションをつけて新規作成。
rails new -d mysql
bundle install
gemをインストール
bundle install
gemの追加
gem 'gem名'
*Gemfile.lockに変更を加えるときは、ファイル消去後に
bundle install
データベース、MVCファイルの作成
rake db:create
database.ymlというファイルの内容を基にデータベースを新規作成。
rake db:migrate
コントローラー
コントローラーの作成。
rails g controller articles
コントローラー名は基本複数。(用途に応じて単数)
under_score、CamelCasedのどちらでも可。
viewフォルダも一緒に生成。
コントローラーの削除。
rails destroy controller articles
関連ファイルもまとめて削除してくれる。
モデル
モデルの作成
モデルの作成。
マイグレーションファイルも一緒に生成。
rails g model article
モデルの削除。
関連ファイルもまとめて削除。
rails destroy model article
マイグレーションファイルの編集
changeメソッドで作成するカラムを指定。
ex.
class CreateArticles < ActiveRecord::Migration
def change
create_table :articles do |t|
t.string :title
t.text :content
t.timestamps
end
end
end
rake db:migrate
マイグレーションファイルの実行
rake db:migrate
schemaファイル
rake db:migrateを実行するときに、schemaファイルの更新が行われる。
shema_migration
どのマイグレーションファイルまでが実行されたかを記録するデータベースの変更履歴。
マイグレーションファイルの実行時に自動生成。
rake db:migrateの仕組み
- schema_migrationを参照し、まだ実行されていないマイグレーションファイルがないかを調べる。
- 実行していないマイグレーションファイルが見つかれば、実行。
これによって、rake db:migrationを複数回実行しても、同じマイグレーションファイルが実行されることはない。
rake db:rollback
データベースの状態を最新のマイグレーションファイル実行前に戻す。
作成したテーブル及びschema_migrationの状態が戻る。
任意の状態まで戻したい
rake db:rollbackはあくまで1個前の状態に戻すだけ。
任意のmigrateまで戻すときは
- rake db:drop でデータベースを削除
- 要らないマイグレーションファイルの削除
- rake db:create、 rake db:migrateでやり直す