0

Rails ジェネレーターを使用してモデルを生成すると、そのタイムスタンプ フィールドが自動的に追加され、スキーマ内にこれら 2 つのタイムスタンプ フィールドが作成されます。

これらの 2 つのフィールドを削除する移行を作成できることはわかっていますが、それらを削除する移行を作成する代わりに、実際にそれらを最初から生成しない方法があるかどうか疑問に思っていました。

4

1 に答える 1

1

この場合、ターミナルで次の行を使用して、特定のジェネレーター (モデル) のヘルプ オプションを取得します。

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
于 2013-02-25T22:50:54.673 に答える