【发布时间】:2017-09-23 03:58:52
【问题描述】:
我有一个方法 Order ,如果状态完成,减少方法保存的产品数量并创建交易记录。
一切正常,除了日志显示:
即使显示代码仍然有效
谁能解释一下为什么会这样?
def order_sold
if sold
order = Order.find(params[:id])
product = order.product
if order
if params[:status] == 'COMPLETED'
order.status = Order.statuses[0]
product = order.product
quantity = product.quantity
product.quantity -= order.quantity
product.save
transaction = Transaction.new
transaction.user_id = order.buyer_id
transaction.status = params[:status]
order.transaction = transaction
order.save
OrderMailer.order_confirmation(order).deliver
end
end
else
logger.info("FAILED")
end
render nothing: true
end
记录器:
[对象对象]
/data/viop/releases/167/vendor/bundle/ruby/2.2.0/gems/activerecord-3.2.22/lib/active_record/connection_adapters/abstract/database_statements.rb:371:in
block in commit_transaction_records' /data/viop/releases/167/vendor/bundle/ruby/2.2.0/gems/activerecord-3.2.22/lib/active_record/connection_adapters/abstract/database_statements.rb:370:ineach' /data/viop/releases/167/vendor/bundle/ruby/2.2.0/gems/activerecord-3.2.22/lib/active_record/connection_adapters/abstract/database_statements.rb:370:incommit_transaction_records' /data/viop/releases/167/vendor/bundle/ruby/2.2.0/gems/activerecord-3.2.22/lib/active_record/connection_adapters/abstract/database_statements.rb:218:intransaction' /data/viop/releases/167/vendor/bundle/ruby/2.2.0/gems/activerecord-3.2.22/lib/active_record/transactions.rb:208:intransaction' /data/viop/releases/167/vendor/bundle/ruby/2.2.0/gems/activerecord-3.2.22/lib/active_record/transactions.rb:311:inwith_transaction_returning_status' /data/viop/releases/167/vendor/bundle/ruby/2.2.0/gems/activerecord-3.2.22/lib/active_record/transactions.rb:259:inblock in save' /data/viop/releases/167/vendor/bundle/ruby/2.2.0/gems/activerecord-3.2.22/lib/active_record/transactions.rb:270:inrollback_active_record_state! /data/viop/releases/167/vendor/bundle/ruby/2.2.0/gems/activerecord-3.2.22/lib/active_record/transactions.rb:258:insave' /data/viop/releases/167/app/controllers/orders_controller.rb:216:inorder_sold
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 activerecord rubygems