2

新しいタブを追加する必要がある既存のRailsプロジェクトに取り組んでいます。対応するすべてのモデル、ビュー、およびコントローラーを作成してから、schema.rbファイルを変更して新しいテーブルを作成しました。

 create_table "ryan_indices", :force => true do |t|
    t.string   "name"
  end



create_table "benchmark_indices", :force => true do |t|
        t.string   "name"
      end

これは私の部分的なschema.rbファイルです。最初のテーブルは前にありました。モデル、ビュー、コントローラーを作成した同様の新しいテーブルを追加しようとしています。また、これらのcreate_tableステートメントをschema.rbファイルに追加しました。しかし、実行rake db:migrateしても新しいテーブルは作成されません。つまり、コマンドschema.rb file goes back to previous stateを実行すると変更が消えrake db:migrate、コマンドライン画面に何も表示されないということです。

何が欠けているのかわかりません。誰か助けてもらえますか?

4

1 に答える 1

6

schema.rbを編集することは悪い習慣と見なされます

...編集するようには設計されておらず、データベースの現在の状態を表すだけです。

新しいモデル(したがって新しいdbテーブル)を作成するには、railsモデルジェネレーターを呼び出します

rails generate model Product name:string 

または:既存のモデルの新しいフィールドについては、移行を生成してください...

rails generate migration AddNameToProducts

...編集してから「rake db:migrate」で実行します

これらのタスクは、公式のRailsGuides>Migrationsで非常によく説明されています。

于 2013-01-08T22:58:30.440 に答える