rake db:seed 期间出现问题,值设置不正确

Problems during rake db:seed, value dosn't set correctly

我想用 app/db

中的 seeds.rb 文件预填充我的 table

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

在 table 用户中,我有一个名为 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}]) 

同样的问题,它在数据库中存储 0。

怎么了?

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

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

通过验证并创建用户。

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

适合我的解决方案:

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

u.active = true
u.save