Как сделать так, чтобы ActiveRelation << не сохранял добавленные записи в базе данных неявным образом? - PullRequest
0 голосов
/ 18 мая 2011

Если у меня есть два класса A и B с заданным отношением:

class A < AR::Base; has_many :bs; end
class B < AR::Base; belongs_to :a; end

при выполнении:

a=A.new
a.bs << B.new

и a, и элементы, вставленные в список Bs, не сохраняются,Хотя, если мы вызываем a.save после вызова new:

a=A.new
a.save!
a.bs << B.new

, вновь созданный B немедленно сохраняется.

Как мне избежать этого неявного поведения сохранения?

1 Ответ

1 голос
/ 18 мая 2011

Краткий ответ, к сожалению, вы не можете.Из документов рельсов:

collection << (object,…) </strong>

Добавляет один или несколько объектов в коллекцию, устанавливая их внешние ключи для коллекции.основной ключ. Обратите внимание, что эта операция мгновенно запускает обновление sql, не дожидаясь вызова сохранения или обновления родительского объекта .

Курсив - мой акцент.

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