在我的订单控制器中,我正在对另一个对象进行更改,然后再更新订单的属性,例如
def update
@order.organisation.something = @order.something
@order.organisation.save!
if @order.update_attributes(params[:order])
redirect_to @order
else
render :edit
end
end
原因是我需要订单的先前值(此处称为“某物”)在订单收到新值之前更新组织
我希望,当 update_attributes 由于无效属性而出错时,对组织的更改也会被回滚,显然情况并非如此。所以我的问题是:为什么这种变化不是“隐式”交易的一部分?我怎样才能让它成为它的一部分?