Rails 4:将列添加到现有脚手架

时间:2015-02-15 07:13:05

标签: ruby ruby-on-rails-4

是的,这个问题充斥在这里,但大多数是几年前我正在使用Rails 4.我已经尝试了几个,它搞砸了我的rails应用程序,所以我不会再采取任何机会。

我已经创建了一个带有字段的脚手架,我对其模型,控制器和视图进行了很多更改。想象一下,几个星期之后,当你创建了一个脚手架后,他们正在为某人工作,他们意识到他们错过了一个重要的专栏 - 大声笑

rails g scaffold Book a:string b:integer

如何轻松添加c:date

很少有示例显示正在运行迁移,很少有人说要编辑rails控制台。我对rails g migration add_this_to_that c:data ??

感到困惑

我对你的答案的任何参考都非常感激,因为我还在学习RoR。

1 个答案:

答案 0 :(得分:6)

要添加新列,您应该创建迁移:

rails g migration add_c_to_books c:date

(请注意语法:add_x_to_y),它会将此文件添加到 db / migrate / 时间戳 _add_c_to_books.rb

class AddCToBooks < ActiveRecord::Migration
  def change
    add_column :books, :c, :date
  end
end

现在您只需要运行它:

rake db:migrate

就是这样。


您可以添加多个列:

rails g migration add_c_d_e_to_books c:date d:string e:integer

将创建以下迁移:

class AddCDEToBooks < ActiveRecord::Migration
  def change
    add_column :books, :c, :date
    add_column :books, :d, :string
    add_column :books, :e, :integer
  end
end

或者根据需要命名:

rails g migration my_migration

这将导致干净的迁移:

class MyMigration < ActiveRecord::Migration
  def change
  end
end

您可以在def change内指定您的指令。