【发布时间】:2016-06-16 05:09:50
【问题描述】:
这是一个问题。
我有一个 Rails 项目。当我想清除我的数据库并用我运行的一些测试数据填充它时:
rake db:drop db:create db:migrate db:seed
我有一个错误:
NoMethodError: undefined method login for #<User:0x007fecf46afe80>
当我单独运行时:
rake db:drop db:create db:migrate
rake db:seed
一切顺利。
我在 db/seeds.rb 中的所有操作都包含在 ActiveRecord::Base.transaction 块中。
我必须在我的 db/seeds.rb 顶部添加 User.reset_column_information 来制作
rake db:drop db:create db:migrate db:seed
工作。
在没有reset_column_information 之前,我没有遇到同样的错误。有人知道为什么会这样吗?
PS:运行rake db:drop db:create db:migrate 后,db/schema.rb 中有“缺失”列,我可以直接在 DB 中看到此列
【问题讨论】:
-
请出示您的控制器和型号
-
我也有同样的问题和型号
User。
标签: sql ruby-on-rails database transactions