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

当我再次运行 rake db:migrate 时,它​​会在我的数据库中创建正确的表名,但会创建 Saving_item.rb

迁移只会改变数据库;他们不创建或更改任何文件(schema.rb 除外)。生成器是创建和更改文件的对象,包括迁移文件。

如果您已经生成了模型,您可以简单地手动更改其名称。将文件更改class SavingsItemclass SavingsProduct并将其重命名savings_item.rbsavings_product.rb

于 2012-11-11T22:17:40.110 回答
1

我不确定是否有办法重命名模型,但您可以简单地使用destroy摆脱错误命名的模型。像这样:rails destroy model model_name

destroy 删除generate命令自动生成的所有文件。

于 2012-11-11T22:13:24.717 回答