Rails ジェネレーターを使用してモデルを生成すると、そのタイムスタンプ フィールドが自動的に追加され、スキーマ内にこれら 2 つのタイムスタンプ フィールドが作成されます。
これらの 2 つのフィールドを削除する移行を作成できることはわかっていますが、それらを削除する移行を作成する代わりに、実際にそれらを最初から生成しない方法があるかどうか疑問に思っていました。
Rails ジェネレーターを使用してモデルを生成すると、そのタイムスタンプ フィールドが自動的に追加され、スキーマ内にこれら 2 つのタイムスタンプ フィールドが作成されます。
これらの 2 つのフィールドを削除する移行を作成できることはわかっていますが、それらを削除する移行を作成する代わりに、実際にそれらを最初から生成しない方法があるかどうか疑問に思っていました。
この場合、ターミナルで次の行を使用して、特定のジェネレーター (モデル) のヘルプ オプションを取得します。
rails g model --help
created_at
フィールド (および)の追加を防止するために使用するオプションupdated_at
は次のとおりです。
rails g model <model_name> <[[field_name(fn):field_type(ft)], [fn:ft]]> --timestamps=false
これで作成された対応する移行には、2 つのタイムスタンプ フィールドがありません。
例:
rails g model test --timestamps=false
invoke active_record
create db/migrate/20130225224757_create_tests.rb
create app/models/test.rb
ファイルを表示する unixcat
コマンドを使用してファイルをチェックした結果、タイムスタンプが移行に含まれていないことが確認されます。
cat db/migrate/*_create_tests.rb
class CreateTests < ActiveRecord::Migration
def change
create_table :tests do |t|
end
end
end