[ rails 4.1.6, ruby 2.1.3p242]
1.设置database.yml database: bookshop
,并在我的数据库中创建bookshop
数据库。
2.通过 SQL(我使用 MySQL)创建一个新表 books
,id int(10),name varchar(45)
。
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:迁移 ====================================== -- 创建表(:书籍) rake 中止! StandardError:发生错误,所有后续迁移均已取消:
您不能重新定义主键列“id”。要定义自定义主键,请将 { id: false } 传递给 create_table./usr/local/...
最佳答案
ID 字段默认添加到模型中 - 您无需自己添加。
使用 rails destroy scaffold Book
销毁您创建的脚手架,然后重新创建它 - 这次没有 id:integer
字段。
关于ruby-on-rails - Rails : after using scaffold, 我无法迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26178299/