2015-05-02 55 views
5

我想知道是否有Rails方式通過傳入一組屬性來創建多個記錄。ActiveRecord create:傳入屬性數組

例如,而不是

MyModel.create!(attr_1: some_attr, attr_2: 1) 
MyModel.create!(attr_1: some_attr, attr_2: 2) 
MyModel.create!(attr_1: some_attr, attr_2: 3) 
MyModel.create!(attr_1: some_attr, attr_2: 4) 

我想這樣做:

MyModel.create!(attr_1: some_attr, attr_2: [1,2,3,4]) 

但它不工作。有沒有類似的方式來實現這個沒有循環?

回答

12

據的文檔可以create記錄從散列數組:

的屬性參數可以是爲一散列或 散列數組。這些哈希描述了要創建的對象的屬性 。

MyModel.create([{attr_1: some_attr, attr_2: 4}, {attr_1: some_attr, attr_2: 5}]) 
+1

是否有這樣的版本不保存到數據庫?例如'build'? – fatuhoku

+0

@fatuhoku有沒有這樣的版本不保存。 –

+2

注意:這不會爲試圖構建高效插入查詢的用戶創建單個查詢。 –