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 文件。第一张桌子以前在那里。我只是想添加一个类似的新表,我为它创建了模型、视图和控制器,并且还在 schema.rb 文件中添加了这些 create_table 语句。但是,当我运行rake db:migrate它时,它不会创建新表。我的schema.rb file goes back to previous state意思是我的更改在我运行rake db:migrate命令后消失了,它在命令行屏幕上什么也没有显示。

我不知道我错过了什么。有人可以帮忙吗?

4

1 回答 1

6

编辑schema.rb 被认为是不好的做法

...不是为编辑而设计的,它们只是代表数据库的当前状态。

要创建一个新模型(因此是一个新的数据库表),请调用 rails 模型生成器

rails generate model Product name:string 

或者:对于现有模型的新字段,请生成迁移...

rails generate migration AddNameToProducts

...编辑它,然后用“ rake db:migrate”运行它

这些任务在官方RailsGuides > Migrations中有很好的描述

于 2013-01-08T22:58:30.440 回答