Создание и обновление нескольких моделей в рамках одной транзакции - PullRequest
6 голосов
/ 29 июля 2011

Я хотел знать, возможно ли в rails делать несколько обновлений и созданий в рамках одной транзакции.

Я хотел создать нет. Products из любого массива. Но для каждого продукта мне также нужно создать Company и Category для него.

Итак, идея такая:

-- Start a transaction
//create a company
//create a category
while product_list
{
   //create a product with company and category created above
}
-- end a transcation

Так что, если какое-либо из созданий завершится неудачно, я хочу, чтобы более раннее обновление / создание откатилось.

1 Ответ

15 голосов
/ 29 июля 2011
begin
  ActiveRecord::Base.transaction do
    # create a company
    # create a category
    while product_list
    {
      # create a product with company and category created above
    }
  end
rescue => e
  # something went wrong, transaction rolled back
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...