Dodanie atrybutu do rekordu.Import

Cześc
Mam taki problem,

Mam model Campaign gdzie mam atrybuty id,name,email,owner.

Zaimportowałem sobie dane id i name.Jednak teraz potrzebuje zaimportować i dopisać do danego rekordu atrybuty email i owner.

Import polega na zaciągnięciu pliku csv.

Potrzebuję aby mi sprawdzało nazwę kampanii , i jeśli jest dana kampania to dodane do tego email i owner.

def self.import(file)
   CSV.foreach(file.path, headers: true, encoding: "windows-1252:utf-8") do |row|

      unless Campaign.exists?(name: row[0])
            Campaign.create!(:owner => row[1],:email => row[2])
      end
    end
end

Powyżej mam kod ktory importuje własnie tego ownera i email. Ale problem jest taki, że tworzy on nową kampanie a nie dodaje już do istniejącej kampanii.

Mały update.

Mam coś takiego

def self.import(file)
   CSV.foreach(file.path, headers: true, encoding: "windows-1252:utf-8") do |row|
        znalezione = Campaign.where("name LIKE ?", "%I1501034A288%")
        if znalezione
           Campaign.update(znalezione.id,owner: row[1])
        end
    end
end

Zapisuje do miennej wynik wyszukiwania Kampanii i gdy robie update podaję id znalezionej kampanii

Jednak dostaje błąd.

Pomoże mi ktoś ?

Campaign.where zwraca kolekcję a nie pojedynczy obiekt
użyj Campaign.find_by(name: “cos tam”)

Już rozgryzłem, dla tych którzy będą mieć ten sam problem.

where zwraca ciąg znaków a nie dany obiekt. aby to zadziałało musiałem dodać .first

Wtedy bez problemu nogę wyciągnąć właściwości danego atrybutu.