Scaffold の生成では、
データベースの各カラムの名前と型のみを指定します。
デフォルト値が設定されていると便利なことも多いので、
ここで纏めて設定しておきます。
\db\migrate フォルダに、(生成日時)_change_default_values.rb が生成されます。20260112064148_change_default_values.rb です。参考リポジトリ: https://github.com/Bonv-dev/book_mgmt/commit/ad035f7
migration コマンドは Upper Camel Case (Pascal Case) で書きます。
実際に生成されるファイル名は Snake Case になります。
マイグレージョンファイルのオプションについて説明します。
サンプルプログラムでは、
Scaffold でテーブルを作った後に、
上記の方法でデフォルト値を追加設定しましたが、
2つを同時に行うことも可能です。
ruby bin/rails generate migration CreateNewTables name:string
で作成したマイグレーションファイルを作り、
class CreateNewTables < ActiveRecord::Migration[8.1]
def change
create_table :new_tables do |t|
t.string :name
t.timestamps
end
end
end
となったとします。
name カラムの設定を追加するには、
2つを列挙してもいいです。
他にもあるので、詳細は Rails ガイド を参照してください。
マイグレーションファイルは、一般に
class ChangeDefaultValues < ActiveRecord::Migration[8.1]
def change
end
end
のように、メソッドの中は空です。
migration のパラメータを決まった形式で書くと、
詳細なマイグレーションファイルが作成できます。
ruby bin/rails generate migration CreateNewTables name:string serial:integer
とすると、
class CreateNewTables < ActiveRecord::Migration[8.1]
def change
create_table :new_tables do |t|
t.string :name
t.integer :serial
t.timestamps
end
end
end
のように、新しいテーブルを作成できます。
ruby bin/rails generate migration AddHeightToUsers height:integer
とすると、
class AddHeightToUsers < ActiveRecord::Migration[8.1]
def change
add_column :users, :height, :integer
end
end
のように、既存のテーブルにカラムを追加できます。
Remove を使えば、
Add と同じ形式で、既存テーブルのカラムを削除できます。
詳細が必要な方は、Rails ガイド を参照してください。