2016-06-01 7 views
0

は関連があるレールこのテストセットアップでリロードが必要なのはなぜですか?</p> <pre><code>Class Tree has_many :apples end Class Apple belongs_to :tree end </code></pre> <p>これは私のテスト・セットアップコードである:ここでは4

let!(:apple) { create(:apple, tree: tree) } 
    let(:tree) { create(:tree, :growing) } 

tree.apples.first.apple_corecannot call .apple_core on nilか何かのようなものと一緒にエラーではないようにするために、私はtree.reloadを行う必要があります。どうしてこれなの?メモリツリー内にhas_manyアソシエーションがメモリにロードされていて、let!が呼び出されてはならないはずです。私はreloadの投稿を読んでいて、何が起きているのかまだ混乱していますか? RSpecのapplytreeをリロードするが、ちょうどあなたがforcelyそれをリロードする必要が最新それほど関係を取得するには、そのidを使用いけないので、私はそれを信じ

答えて

0

であり、場合にあなたは工場の女の子を使用してい後作成ハンドラでそれを実行してください:

after(:create) do |item, evaluator| 
    item.tree.reload 
end 
関連する問題

 関連する問題