2016-07-12 3 views
0

私は、後でボードを切り取るアプリケーションで解析するために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 

を行うことを試みているものの例私はスキップしていますという根本的な何かがありますか? これを行う最も良い方法はどれですか? 最高

答えて

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 
関連する問題