我正在构建一个应用程序,用户可以在其中购买跟踪编号。我有一个订单模型和一个订单交易模型。如果订单事务成功返回从网关,我使用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