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
我想用 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