カテゴリー:
Rails
タグ:
 FactoryGirl trait ラベル

このエントリーをはてなブックマークに追加
更新日時:
2013年08月22日(木)
作成日時:
2013年08月22日(木)

前の記事 / 次の記事

そのまんんまなんだけど、特にシンボルで指定しなくてもいいっぽい。

例えば、

FactoryGirl define do
  factory :book do
    title "かぐや姫"

    trait :with_author do
      author_attributes { attributes_for :author }
    end

    trait [:author, with_description] do
      author_attributes { attributes_for :author, with_description }
    end

  end
end

とか書けば

FactoryGirl.attributes_for :book, :with_author
FactoryGirl.attributes_for :book, [:author, :with_description]

という風に書けて、分かりやすい気がした。

シンボルだけで頑張って書くと

FactoryGirl.attributes_for :book, :with_author_with_description

とかなってくどい、でも

FactoryGirl.attributes_for :book, :author_with_description

とか書くと、"author"がbookの属性なのか、関連先なのか分かりにくい。
[]の中は関連先の定義という決めにしておけば、

FactoryGirl.attributes_for :book, [:author, :with_description]

と書いた時に"authro"は"description"を持った関連先のオブジェクトであることが分かる。