rake db:seed期间的问题,值没有正确设置

我想用app / db中的seeds.rb文件预填充我的表

但是在存储正确的数据时我遇到了问题。

在表用户中,我有一个名为active的列,数据类型为tinyint。 所以现在我想用seeds.rb int值存储

User.create([ { :id => 1, :firstname => 'Felix', :lastname => 'Hohlwegler', :active => 1}]) 

但它不存储1.它总是在数据库中存储0。

也试过这个:

 User.create([ { :id => 1, :firstname => 'Felix', :lastname => 'Hohlwegler', :active => true}]) 

同样的问题它在db中存储0。

什么出错了?

导致此类问题的最常见的事情是validation。 在这种情况下,我希望用户需要电子邮件或密码。 请检查是否

 User.create!( :id => 1, :firstname => 'Felix', :lastname => 'Hohlwegler', :active => true ) 

传递validation并创建用户。

请注意我使用create! 如果它无法创建用户而不是仅返回未保存的用户,则会引发错误。

解决方案对我来说很好:

 u = User.new( :id => 1, :firstname => 'Felix', :lastname => 'Hohlwegler', :active => 1 ) u.active = true u.save