0

以下を使用してモデルを作成しました。

rails generate model SavingsItem

それから私は走っrake db:migrateた。

ここで、モデルの名前を次のように変更しますSavingsProduct

rake db:rollbackを実行してから、移行ファイルに直接アクセスして、モデル名とテーブル名を変更しました。ただし、rake db:migrate再度実行すると、データベースに正しいテーブル名が作成されますが、それでも作成されsavings_item.rbます。

なぜこれが起こるのですか?

これが私の移行ファイルです:

class CreateSavingsProducts < ActiveRecord::Migration
  def change
    create_table :savings_products do |t|
      t.string :name, :limit => 50
      t.string :description, :limit => 200
      t.decimal :price, :precision => 10, :scale => 2
      t.string :buy_url, :limit => 200
      t.string :image_url, :limit => 200
      t.integer :image_width, :limit => 11
      t.integer :image_height, :limit => 11
      t.timestamps
    end
  end
end
4

2 に答える 2

1

モデルの名前を変更する方法があるかどうかはわかりませんがdestroy、誤って名前が付けられたモデルを削除するために使用できます。このような:rails destroy model model_name

destroyは、generateコマンドによって自動的に生成されたすべてのファイルを削除します。

于 2012-11-11T22:13:24.717 に答える
1

rake db:migrateを再度実行すると、データベースに正しいテーブル名が作成されますが、savings_item.rbが作成されます。

移行はデータベースを変更するだけです。ファイル(schema.rbを除く)を作成または変更することはありません。ジェネレーターは、移行ファイルを含むファイルを作成および変更するものです。

モデルをすでに生成している場合は、名前を手動で変更するだけです。に変更class SavingsItemclass SavingsProduct、ファイルの名前をからに変更しsavings_item.rbますsavings_product.rb

于 2012-11-11T22:17:40.110 に答える