Bra*_*ira 3 ruby ruby-on-rails
我们在创建新应用程序时遇到问题。我们有两种模式:套餐和产品,一个套餐有很多产品。我们需要创建一个可以批量创建包的控制器,因此我们开始使用允许批量创建的 activerecord-import gem。但问题是 gem 不允许使用嵌套属性来创建产品,这意味着我无法为每个包创建相应的产品。有没有人遇到过类似的问题或有任何潜在的优雅解决方案?
控制器的 JSON 类似于以下内容。
{
packages: [
{
weight: 'x',
products_attributes: [
{
code: x
},
{
code: x
}
]
},
{
weight: 'y',
products_attributes: [
{
code: y
},
{
code: y
}
]
},
]
}
Run Code Online (Sandbox Code Playgroud)
小智 7
books = 10.times.map do |i|
book = Book.new(name: "book #{i}")
book.reviews.build(title: "Excellent")
book
end
Book.import books, recursive: true
Run Code Online (Sandbox Code Playgroud)
您可以尝试此操作,迭代哈希并为包构建对象,并为每个包迭代产品并构建分配给包对象的产品对象。另一种方法是构建原始 SQL,但这更难
| 归档时间: |
|
| 查看次数: |
597 次 |
| 最近记录: |