0

「グループ」と呼ばれるフィクスチャがあります。

one:
   customer: one
   name: MyString

あるテストでは、さらにいくつか必要なので、次のようなことをしたいと思います。

  (1..3).each { |t| Group.create!(groups(:one), name: "Group #{t}")}

フィクスチャでそのようなことをする方法はありますか? (もちろん、上記は機能しません)。ファクトリを使用できることはわかっていますが、フィクスチャを引き続き使用したいと考えています。

4

3 に答える 3

0

2番目の例は一種のFactoryです。

(yaml) フィクスチャを使用する場合は、次の行に沿って、2 番目の例と同様のスクリプトを使用して簡単に生成できます。

y = {"two" => {"customer" => "two", "name" => "londiwe"}}.to_yaml   
fi = open("groups.yml", "w")
fi.write(y)
fi.close

edit after comment : 既存のレコードから属性を取得し、その 1 つのレコードに基づいて新しいレコードを作成する場合は、次を使用しcloneます
。 1. まず、複製するレコードを見つけます。

orig = Group.find_by_customer("one")

2. クローンを作成し、その属性を変更して保存します

(1..3).each do 
     tmp_clone = orig.clone 
     tmp_clone.name = "two"
     tmp_clone.save
end
于 2013-01-31T12:16:54.157 に答える