为什么Rails迁移生成器不尊重我要求的字段?

时间:2012-02-04 13:23:58

标签: ruby-on-rails migration rails-generate

我使用这样的命令:

administrator@ubuntu:~/demo$ rails generate migration Testabc test123:string

终端回复:

invoke active_record
create db/migrate/20120204124219_testabc.rb

但在文件中的内容是:

class Testabc < ActiveRecord::Migration
  def up
  end

  def down
  end
end

那么,我的表和字符串列在哪里?

2 个答案:

答案 0 :(得分:3)

您的迁移需要看起来像rails g migration add_<field>_to_<table> field:type。例如,这个:

rails generate migration add_fieldname_to_tablename fieldname:string

会产生这个:

class AddFieldnameToTablename < ActiveRecord::Migration
  def up
    add_column :tablenames, :fieldname, :string
  end

  def down
    remove_column :tablenames, :fieldname
  end
end

如果您想从头开始生成模型,那么您应该:

rails generate model Widget fieldname:string

将生成包含模型所需字段的迁移。

答案 1 :(得分:0)

也许你正在寻找:

rails generate model Testabc test123:string