次のような都市モデルがあるとします。
class city
field :full_name, type: String # San Francisco, CA, United States
field :_id, type: String, overwrite: true, default: ->{ full_name }
end
/spec/factories/cities.rbに工場が定義されているとします:
FactoryGirl.define do
factory :city do
full_name 'San Francisco, CA, United States'
end
end
いずれかの仕様で次のコードを実行します。
city_attrs = { full_name: 'San Francisco, CA, United States' }
City.create! city_attrs
=> #<City _id: San Francisco, CA, United States, full_name: "San Francisco, CA, United States">
FactoryGirl.create(:city)
=> #<City _id: , full_name: "San Francisco, CA, United States">
次のコードを/spec/factories/cities.rbに追加せずにこれを修正するにはどうすればよいですか?
before(:create) do |city, evaluator|
city.id = city.full_name
end
EDIT解決策は、この回答で推奨されているように、使用
を停止して代わりにFactoryGirl
使用することですFabrication