У меня есть Invoice
модель, которая accepts_nested_attributes_for
:line_items
с allow_destroy: true
. В моей модели в обратном вызове before_save
я могу ссылаться на данные следующим образом:
self.line_items
Некоторые элементы будут удалены при сохранении. Я хочу иметь возможность получать только те элементы, которые не будут удалены, например:
self.line_items.where(_destroy: false)
Однако это, очевидно, не сработает, поскольку я имею дело с несохраненным объектом. Итак, мой вопрос: как мне получить список элементов, которые не будут удалены? Я знаю, что могу технически перебрать список и добавить каждый применимый элемент в новый массив, но я думаю, что есть что-то более интуитивное. Например, в настоящее время я использую .sort_by(&:line_number)
вместо SQL .sort(:line_number)
для сортировки, что позволяет мне сортировать в памяти, а не из SQL. Мне нужно то же самое, за исключением пункта .where
.
Заранее спасибо.