我們正在創建的新應用程式中遇到問題。我們有兩種型號:包和產品,一個包有很多產品。我們需要創建一個可以批量創建包的控制器,所以我們開始使用允許批量創建的 activerecord-import gem。但是問題是 gem 不允許使用嵌套屬性來創建產品,這意味著我無法為每個包創建相應的產品。有沒有人遇到過類似的問題或有任何潛在的優雅解決方案?
控制器的 JSON 類似于以下內容。
{
packages: [
{
weight: 'x',
products_attributes: [
{
code: x
},
{
code: x
}
]
},
{
weight: 'y',
products_attributes: [
{
code: y
},
{
code: y
}
]
},
]
}
uj5u.com熱心網友回復:
books = 10.times.map do |i|
book = Book.new(name: "book #{i}")
book.reviews.build(title: "Excellent")
book
end
Book.import books, recursive: true
你可以試試這個,迭代你的散列,并為包構建物件,對于每個包,迭代產品,并構建分配給包物件的產品物件。另一種方法 - 是構建原始 SQL,但它更難
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/314931.html
