我使用以下方法创建了一个模型:
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
答案 0 :(得分:1)
我不确定是否有办法重命名模型,但您可以简单地使用destroy
来摆脱错误命名的模型。像这样:rails destroy model model_name
destroy删除由generate
命令自动生成的所有文件。
答案 1 :(得分:1)
当我再次运行rake db:migrate时,它会在中创建正确的表名 我的数据库,但创建savings_item.rb
迁移只会改变数据库;它们不会创建或更改任何文件(schema.rb除外)。生成器是创建和更改文件的内容,包括迁移文件。
如果您已经生成了模型,则只需手动更改其名称即可。将class SavingsItem
更改为class SavingsProduct
,并将文件从savings_item.rb
重命名为savings_product.rb
。