factory_bot の attributes_for メソッドを使ってみる

ドキュメントを読んでみる

以下の例では、Userインスタンスをビルドして、属性のハッシュを返すとのこと

f:id:matt-note:20181017203742p:plain

 参考:File: GETTING_STARTED — Documentation for factory_bot (4.11.1)

 

使ってみる

以下のファクトリーファイルで

f:id:matt-note:20181020192443p:plain

以下のファクトリーを定義している。属性は name, description, deu_on, association となっている。

f:id:matt-note:20181020192507p:plain

 

上記のファクトリーを引数にして attributes_for メソッドを呼び出して、値を p メソッドで出力してみる。なお、引数にハッシュを渡すことで、キーに対応する値を上書きできる。

f:id:matt-note:20181017203912p:plain

 

すると、以下のようなハッシュで返された。属性がキーとなって、値が設定されている。

f:id:matt-note:20181017203941p:plain

 

なお、attributes_for メソッドは以下のように post用のパラメータをハッシュで作成する場合などで便利に使うことができる。

f:id:matt-note:20181020201414p:plain

 

まとめ

Factory を使うけど、インスタンスを返すのではなく、ハッシュを返すという点がポイント。ハッシュのパラメータを作成する時に、便利に使うことができる。