Rails Transaction - PullRequest
       1

Rails Transaction

2 голосов
/ 27 февраля 2012

новичок здесь.Я пытаюсь выполнить транзакцию, когда заказ и отношения созданы и сохранены.Почти как если бы вам пришлось заплатить, чтобы следовать за кем-то.Когда заказ сохраняется, отношения создаются и сохраняются.

def create
@order = current_cart.build_order(params[:order]) 
@order.ip_address = request.remote_ip
if @order.save
  if @order.purchase

  respond_to do |format|
    Order.transaction do
      begin
          @order.cart.line_items.all.each do |item|
          current_user.person_relationships.build(:owned_id => item.person_id)
          end
        end
        format.html {redirect_to root_path, :flash => {:success => "Transaction Success" } }
        format.xml{render xml: root_path}

      rescue ActiveRecord::RecordInvalid
        format.html {render :action => "failure" }
        format.xml {render :action => "failure"}

        raise ActiveRecord::Rollback
      end
    end
  end
end

Проблема возникает при создании заказа.Как будто метод просто пропускает блок элементов, и порядок создается, но не создаются person_relationships.Также очень важны ссылки на ответы на вопросы.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 27 февраля 2012

Мне кажется, что вы только строите отношения, но не сохраняете их:

 current_user.person_relationships.build(:owned_id => item.person_id)

должно быть

 current_user.person_relationships.create(:owned_id => item.person_id)
0 голосов
/ 27 февраля 2012

Если он пропускает товары, возможно, у вас нет line_items для этой корзины? Проверьте журналы для запросов рельсов и данных, которые возвращаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...