Используйте опцию reject_if:
, чтобы удалить атрибуты ha sh, если запись не существует:
accepts_nested_attributes_for :deck_items,
reject_if: :deck_item_does_not_exist?
private
def deck_item_does_not_exist?(attributes)
if attributes["id"].present? && attributes["_destroy"].present?
DeckItem.where(id: attributes["id"]).none?
else
false
end
end