2016-07-04 68 views
1

這些模型之間的關係是創建一個工廠建嵌套資源

  • airport HAS_MANY flights
  • flight HAS_MANY flight_skus

與父母,並與一個簡單的方法了盛大的父母怎麼可能創造flight_sku FactoryGirl

before(:all) do 
    @airports = AIRPORTS.collect{|airport| FG.create(:airport, code: airport)} 
    @flight = FG.create(:flight, from_airport: @airports[0], to_airport: @airports[3]) 
    @sku = FG.create(:flight_sku, flight: @flight) 
    @flight_2 = FG.create(:flight, from_airport: @airports[1], to_airport: @airports[2]) 
    @sku_2 = FG.create(:flight_sku, flight_id: @flight_2.id) 
    end 

update:(not working ve rsion_

NoMethodError: 
    undefined method `single_room=' for #<Room:0x007fcbed2e3d60> 
    Did you mean? singleton_method 



factory :create_rooms_list do 
    single_room 
    twin_room 
end 

factory :single_room do 
    name "單人房" 
    guests 1 
end 

factory :twin_room do 
    name "雙人房" 
    guests 2 
end 
+0

如果有任何幫助,請將我的答案標記爲正確 – davidwessman

+0

你想要做什麼:creat_rooms_list? – davidwessman

回答

2
factory :flight_sku do 
    other_fields 
    flight 
end 

factory :flight do 
    other_fields 
    airport 
end 

factory :airport do 
    other_fields 
end 

通過調用build(:flight_sku)您將創建一個flight,與airport和新flight_sku設置所說的關聯。

通過致電create(:flight_sku)您將創建它們全部。

通過調用build_stubbed(:flight_sku),您將創建flight_sku的存根資源和兩個關聯。

+0

你的解決方案現在可以工作,當我打電話創建'create_rooms_list' – user3675188