Rails 4:向现有表添加多个列

Syl*_*lar 23 ruby ruby-on-rails ruby-on-rails-4

我知道如何将一列添加到现有表中.现在我必须在现有表中添加许多列.是否有更短的方式:

add_col1_col2_col3_col4_.._coln_to_tables col1:integer col2:integer etc...
Run Code Online (Sandbox Code Playgroud)

对于我必须添加的所有其他列,我是否必须执行上述操作?

Shw*_*eta 43

没有必要.你可以做

假设TableName是用户

rails g migration AddColumnsToUser col1:integer col2:integer .. etc.
Run Code Online (Sandbox Code Playgroud)


Pro*_*oto 17

这是ActiveRecord上的一个很好的资源:迁移,它列出了可用于操作数据库的所有命令.你也可以这样做:

rails g migration AddMoreColumnsToModel

然后打开迁移文件并放入:

def change
  add_column :table, :new_column, :type
  # add as many columns as you need 
end
Run Code Online (Sandbox Code Playgroud)

如果你想做Maxd建议的事情,拥有相同类型的100列自动创建,他的代码是个好主意.


Max*_*kov 5

只需创建迁移并生成这些列即:

class ChangeTables < ActiveRecord::Migration
  def change
    change_table :tables do |t|
      100.times do |i|
        t.integer :"column_#{i}"
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)