Ruby on Rails

FactoryBotのtraitとafterコールバックを併用する

環境

Ruby 2.5.0
RSpec 3.7.1
Rails 5.2.0

気づいたらFactoryGirlがFactoryBotになっていた。
参考:https://qiita.com/jnchito/items/c71b8f66f61214227555

まあそれはそれとして、大きめなModelのFactoryを作っていると
1つのModelがだんだんと肥大化・難読化していくもの。
これを整理するためにtraitを使うことは効果的な選択肢である。

traitは上記のようにModel自身のパラメータをパターン分けするために使われることが多いようだが
afterコールバックと組み合わせてhas_manyなどの関連モデルを動的に変えることもできる。

関連テーブルもtraitで差分実装できるととてもスッキリして良い。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です