低睡眠因此可能会遗漏一些微不足道的东西,但是......
基于各种文档读数,我认为这会生成包含表和列声明的迁移...
$ script/generate migration Question ordinal_label:string question_text:string
然而,结果是......
class Question < ActiveRecord::Migration
def self.up
end
def self.down
end
end
为什么没有表格或列?
答案 0 :(得分:5)
script/generate migration
命令不会在新表上创建列。
只有当您希望将列添加到现有表时,才能将新列作为参数传递:
script/generate migration add_text_to_question question_text:string
对于您要实现的目标,您必须创建一个新模型:
script/generate model Question ordinal_label:string question_text:string
这将生成如下的迁移:
class CreateQuestions < ActiveRecord::Migration
def self.up
create_table :questions do |t|
t.string :ordinal_label
t.string :question_text
t.timestamps
end
end
def self.down
drop_table :questions
end
end
答案 1 :(得分:3)
那应该是
$ script/generate model Question ordinal_label:string question_text:string
您最终还将获得模型,单元测试和夹具。 script/generate
migrate
会在现有表格中添加一列,但不会向新表格添加。
$ script/generate migration add_question_text_to_question question_text:string
答案 2 :(得分:0)
如果要修改模型,则需要动词。
script/generate migration AddLabelToQuestion label:string
或要生成新模型,您可以使用上面的语句,但将迁移替换为模型。