[rails 4.1.6,ruby 2.1.3p242]
1.设置database.yml database: bookshop
,并在我的数据库中创建bookshop
数据库。
2.用SQL创建一个新表books
id int(10), name varchar(45)
(我使用MySQL)。
3.一切都好,我可以在浏览器中打开项目。
输入成功rails g scaffold Book id:integer name:string
之后,事情变得有点奇怪。
但是,当我重新启动rails项目时,浏览器就出现了
"正在等待迁移。要解决此问题,请运行:bin / rake db:migrate RAILS_ENV = development"
bin/rake db:migrate RAILS_ENV=development
显示== 20141003105907 CreateBooks:迁移====================================== - create_table(:books) 耙子流产了! StandardError:发生错误,所有以后的迁移都被取消:
您无法重新定义主键列&id;#39;。要定义自定义主键,请将{id:false}传递给create_table./usr/local /...
答案 0 :(得分:4)
默认情况下会将ID字段添加到模型中 - 您不需要自己添加它们。
使用rails destroy scaffold Book
销毁您制作的脚手架,然后重新创建 - 这次没有id:integer
字段。