Я импортирую в свое приложение Rails через CSV. Импорт работал до тех пор, пока я не попытался создать новый контакт, используя один из столбцов моего CSV. Вот код, который импортирует данные:Нет метода при импорте в Rails через CSV
row = Hash[[header, spreadsheet.row(i)].transpose]
hotel = find_by_id(row["id"]) || new
hotel.attributes = row.to_hash.select { |k,v| allowed_attributes.include? k }
hotel_name = row["hotel_title"]
hotel_id = row["id"]
if row.to_hash["contact_name"]
hotel.contact = Contact.create(:hotel_id => row["id"], :name => row["contact_name"])
end
hotel.map = Map.create(:hotel_id => row["id"], :status => 0, :title => "Map Publication for #{hotel_name}")
hotel.app = App.create(:hotel_id => row["id"], :status => 0, :title => "Bespoke App for #{hotel_name}")
hotel.save!
Когда я запускаю импорт, я получаю следующее сообщение об ошибке:
undefined method `contact=' for #
В Контакты принадлежат отеля, и Отель has_many Контакты. Я создал Контакты с помощью приложения, но я изо всех сил пытаюсь заставить его работать с использованием этого метода импорта. Я не уверен, что я делаю неправильно здесь, так как модели Map и App одновременно создаются (с идентификатором отеля) после импорта. Импорт теперь терпит неудачу, когда я включаю код, относящийся к contact_name.
class Contact < ActiveRecord::Base
belongs_to :hotel
end
class Hotel < ActiveRecord::Base
has_many :contacts
end