2017-04-25 4 views
0

메소드가 있습니다. 상태가 완료되면 메소드의 제품 수량을 줄이고 트랜잭션 레코드를 만듭니다.레일은 메소드 내부에 객체를 저장합니다.

심지어 코드를 보여주는 이런 일이 왜 아직도

누군가가 설명 할 수주십시오 작동합니다

다 보여 로그에서 제외하고 잘 작동?

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:in 각 ' /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 : 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:218:in 거래 ' /data/viop/releases/167/vendor/bundle/ruby/2.2.0/gems/activerecord-3.2.22/lib/active_record/transactions.rb:208:in transaction' /data/viop/releases/167/vendor/bundle/ruby/2.2.0/gems/activerecord-3.2.22/lib/active_record/transactions.rb:311:in with_transaction_returning_status' /데이터/viop/릴리스/167/vendor/bundle/ruby ​​/ 2.2.0/gems/activerecord-3.2.22/lib/active_record/transactions.rb : 259 : block in save' /data/viop/releases/167/vendor/bundle/ruby/2.2.0/gems/activerecord-3.2.22/lib/active_record/transactions.rb:270:in rollback_active_record_state! ' /data/viop/releases/167/vendor/bundle/ruby/2.2.0/gems/activerecord-3.2.22/lib/active_record/transactions.rb:258:in save' /data/viop/releases/167/app/controllers/orders_controller.rb:216:in order_sold

답변

0

당신이해야 귀하의 모델 중 하나로서 거래를 사용하지 마십시오. 다른 이름을 선택하십시오. 주문은 변경을 제안하는 또 다른 이름입니다.

+0

왜 바꿔야하나요? – bookaka