使用更新插入时未定义的方法'keys'



我想使用upsert_all方法从集合中插入(和更新)记录在一个简单查询中,例如:

books = [] 
10.times do |i|
books << Book.new(name: "book #{i}")
end
Book.upsert_all(books)
但是,我得到以下错误:
.../activemodel-6.1.4.1/lib/active_model/attribute_methods.rb:469:in `method_missing': undefined method `keys' for #<Book id: nil, name: "book 0"> (NoMethodError)

而我正在寻找的是能够使插入所有或upsert_all的任意集合作为一个书籍,例如,如果你能帮助我,我将不胜感激

upsert_all期望一个哈希数组,而不是ActiveRecord对象:

books = [] 
10.times do |i|
books << { name: "book #{i}" }
end
Book.upsert_all(books)

最新更新