おもしろwebサービス開発日記

Ruby や Rails を中心に、web技術について書いています

Fabrication 2.0 アップグレードガイド

いつの間にか Fabrication がバージョン2になっていて、そこで非互換な変更がされたようです。バージョン1からの移行の仕方が書かれた Fabrication 2.0 Upgrade Guide - The Hashrocket Blog を意訳したので載せときます。

全ての末尾の”!”を削除

”!” は deprecatedに。まだ動くけど warning がでます。

attribute ブロック引数の使用方法を変更

fabrication 1.x では、ブロック引数には生成したオブジェクトが渡されていた。2.0 では attributes の hash を渡すように。

1.x だとこうだけど

Fabricator(:person) do
  first_name { Faker::Name.first_name }
  email { |person| "#{person.first_name.downcase}@example.com" }
end

2.0 だとこう書く

Fabricator(:person) do
  first_name { Faker::Name.first_name }
  email { |attrs| "#{attrs[:first_name].downcase}@example.com" }
end

cucumber steps を再び生成する

steps 内のバグを直したり新しい機能を追加したりしたので、cucumber つかってるなら下記のコマンドで steps を作り直す必要がある。

rails g fabrication:cucumber_steps