没有验证失败的 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