没有验证失败的 Rake 种子
Rake seed without validations failing
我正在尝试使用 rake db:seed
用种子数据填充我的数据库,但由于某种原因,我一直收到此错误。请注意,我需要绕过验证检查。
01_user.rb
user = User.new([
{id: 6, email: "admin@example.com"},
{id: 7, email: "superadmin@example.com"}
])
user.save!(validate: false)
我不断收到的错误:
$ bundle exec rake db:seed RAILS_ENV=test
rake aborted!
ArgumentError: When assigning attributes, you must pass a hash as an argument.
关于为什么会发生这种情况以及如何解决它的任何指导?
您正在将哈希数组传递给 User
模型的 new
方法。您需要循环访问这些哈希中的每一个:
[
{id: 6, email: "admin@example.com"},
{id: 7, email: "superadmin@example.com"}
].each do |user_attributes|
user = User.new(user_attributes)
user.save!(validate: false)
end
不过我认为您无法覆盖 id
属性。
你也可以试试这个:
email_list = ["admin@example.com", "superadmin@example.com"]
email_list.each do |email_address|
User.create( email: email_address )
end
我正在尝试使用 rake db:seed
用种子数据填充我的数据库,但由于某种原因,我一直收到此错误。请注意,我需要绕过验证检查。
01_user.rb
user = User.new([
{id: 6, email: "admin@example.com"},
{id: 7, email: "superadmin@example.com"}
])
user.save!(validate: false)
我不断收到的错误:
$ bundle exec rake db:seed RAILS_ENV=test
rake aborted!
ArgumentError: When assigning attributes, you must pass a hash as an argument.
关于为什么会发生这种情况以及如何解决它的任何指导?
您正在将哈希数组传递给 User
模型的 new
方法。您需要循环访问这些哈希中的每一个:
[
{id: 6, email: "admin@example.com"},
{id: 7, email: "superadmin@example.com"}
].each do |user_attributes|
user = User.new(user_attributes)
user.save!(validate: false)
end
不过我认为您无法覆盖 id
属性。
你也可以试试这个:
email_list = ["admin@example.com", "superadmin@example.com"]
email_list.each do |email_address|
User.create( email: email_address )
end