сохраните активный массив записей

У меня есть массив как это

a = []

a << B.new(:name => "c")
a << B.new(:name => "s")
a << B.new(:name => "e")
a << B.new(:name => "t")

Как я могу сохранить его сразу?

18
задан Luca Romagnoli 18 February 2010 в 22:45
поделиться

2 ответа

a.each(&:save)

Это вызовет B#save для каждого элемента в массиве.

28
ответ дан 30 November 2019 в 05:39
поделиться

В VBA предполагается, что lCol является номером столбца:

function ColNum2Letter(lCol as long) as string
    ColNum2Letter = Split(Cells(1, lCol).Address, "$")(0)
end function
-121--1320895-

Поскольку оператор блокировки эквивалентен:

System.Threading.Monitor.Enter(x);
try {
   ...
}
finally {
   System.Threading.Monitor.Exit(x);
}

Можно ли просто сделать это?

bool ObjectWasUnlocked(object x)
{
   if(System.Threading.Monitor.TryEnter(x))
   {
       System.Threading.Monitor.Exit(x);
       return true;
   }
   else
   {
       return false;
   }
}

Обратите внимание, что я называю эту функцию «Объект Был разблокирован» в отличие от «ObjectIsUnlocked». Нет никакой гарантии, что он все еще будет разблокирован, когда функция вернется.

-121--3235593-
B.transaction do
  a.each(&:save!)
end

Создается транзакция, циклически проходящая через каждый элемент массива и вызывающая element.save.

Вы можете прочитать о транзакциях ActiveRecord и каждого метода в API Rails и Ruby.

48
ответ дан 30 November 2019 в 05:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: