我正在构建一个工厂方法,该方法将在JSON中保存一些信息,以便以后在应用程序中进行分析。
这些电路板将围绕它们进行电镀,因此JSON将包含每个寄存器的ID。
例如,我们可以使用电镀1和2。
我需要生成看起来像这样的板子:
width: 500
height: 500
platings: {"up": 1, left: 2, right: 1}
所以我可以在一个工厂上不止一次使用id,但是我无法这样做,因为每次创建电镀时我都会得到另一个ID。
这是我试图做的一个例子
Factory :medium_board do
width 500
height 500
platings {{
"up": create(:plating).id, #id: 1 OK
"left": create(:another_plating).uuid, #id: 2, OK
"right": create(:plating).uuid #id: 3, NOT OK, should have been 1.
}}
end
我跳过的是什么基本的东西? 这是最好的方法吗? 最好
答案 0 :(得分:2)
我会在这里使用after
钩子。像这样:
factory :medium_board do
after :build do |board|
plating1 = create(:plating)
plating2 = create(:another_plating)
board.platings = {
up: plating1.id,
left: plating2.id,
right: plating1.id,
}
end
end