我想创建一个接受json数组并创建多个对象的操作。像Books::CreateCollection
这样的东西。
我相信我需要以某种方式重用Books::Create
- 只需多次调用它并将整个循环包装在事务中。
JSON:
{
"books": [
{
title: "A Tale Of Two Cities"
},
{
title: "Don Quixote"
}
]
}
但是Books::CreateCollection
的合同应该如何?
开拓者0.3.0
答案 0 :(得分:2)
你的合同可以解决这个问题。
contract do
model Book # since you don't call this on the operation.
collection :songs, populate_if_empty: Book do
property :title
end
end
这是改革的基本巫术。
现在,合约将在Book
数组中为每个传入的哈希片段创建一个songs
实例。