2016-07-04 46 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