我正在構建一個應用程序,用戶可以在其中購買跟蹤編號。我有一個訂單模型和一個訂單交易模型。如果訂單事務成功返回從網關,我使用after_save回調觸發一個方法,創建跟蹤號碼並將它們插入到數據庫中。有時用戶只需要訂購一個,但如果他們訂購了多個,我似乎無法獲得創建和插入多條記錄的導軌。While循環在軌中創建多個記錄
這是我正在使用的 - 我從來沒有像這樣使用循環,所以我不知道我做錯了什麼。
def create_trackables
if self.success == true
@order = Order.find(order_id)
@start = 0
while @start < @order.total_tokens
@trackable_token = Tracker.create_trackable_token
@start += 1
@trackable ||= Tracker.new(
:user_id => @current_user,
:token => @trackable_token,
:order_id => order_id
)
@trackable.save
end
end
end
正確 - 我完全錯過了。 – 2011-05-04 21:00:07
這是'|| =' - 謝謝! – Slick23 2011-05-04 21:01:11
這有點晚了,但我最近發現了一個魔術tric,讓創作變得快速。像這樣做:「def create_trackables .... Tracker.transaction do ... * code * ... Tracker.create(something)... end – Automatico 2011-08-18 10:59:16