Удалить объект из массива, не удаляя его из базы данных

Обновить

December 2018

Просмотры

845 раз

1

У меня вопрос , где я просто нужно удалить дубликаты из массива 2 активных записей объектов. Единственное , что является его удаление из базы данных только и мне просто нужно удалить его из массива в этом случае. Я после этого Удалить объект из массива объектов , а также попробовал несколько других вещей , и они были в состоянии удалить его из памяти и явно удалить его из массива , а не базы данных , но я не в состоянии воспроизвести его. Любые предложения , было бы здорово. Спасибо всем!

company_links       = CompanyLinkType.where(company_id: company_ids, contact_linktype_id: 3)
other_company_links = CompanyLink.where(company_id: company_ids, link_type: 'Twitter')


company_links.each do |company_link|
  other_company_links.each do |other_company_link|
    # checks if id and url match, need to remove obj from company_link array
    if other_company_link.company_id == company_link.company_id && other_company_link.url == company_link.contact_link_url
      company_link.delete
      Rails.logger.info"+++++++++DELETED++++++++++"
    end
  end
end

2 ответы

4

If you don't need the logging:

company_links = company_links.reject do |company_link|
    other_company_links.any? do |other_company_link|
        company_link.company_id == other_company_link.company_id && other_company_link.url == company_link.contact_link_url
    end
end
0

Change company_link.delete to company_links.delete(company_link)