2015-06-17 47 views
0

我有關聯的每個人3種三種型號..通過協會中插入的has_many等領域,在Rails的

房型號

has_many :room_amenities 
has_many :amenities, through: :room_amenities 

美化示範

has_many :room_amenities 
has_many :rooms, through: :room_amenities 

RoomAmenity型號

belongs_to :amenity 
belongs_to :room 

我試圖插入我的新room_amenity選擇:

room = Room.find(28) 
amenity = Amenity.where(id: [1,2]) 

rm_amenities = room.amenities = amenity 

,它是成功創建,但如果我想插入其他2場像room_amenities模型

PriceHour我怎麼能插什麼?

+0

你說的 「插入」 是什麼意思?你的意思是把它們作爲屬性添加到以前沒有這些屬性的'room_amenities'表中?聽起來就像你需要這樣一張桌子,並且只包括'價格'和'小時'作爲屬性。或者,如果價格和小時數僅取決於便利設施,則將它們添加爲「便利設施」表格屬性。 – lurker

+0

是的,我想插入價格和小時..我在room_amenities中已經有價格和小時屬性。 –

回答

0

你可以簡單地做

room = Room.find(28).room_amenities.new(amenity: Amenity.find(1), price: 100, hour: 2) 
room.save 
+0

如果我有一個要插入的對象數組該怎麼辦?我應該循環做出來嗎? –

+0

我會說是的,你需要循環。在上面的例子中,你寫了'Amenity.where(id:[1,2])',它最終會導致調用兩個sql插入,因爲活動記錄不會執行批量插入。 – Ojash