У меня возникли проблемы с обработкой хэша, а затем с сохранением определенных частей в моей базе данных. Я могу пройти через нее, чтобы получить информацию, которая мне нужна. Моя проблема заключается в обновлении записи в моей базе данных. Я пытаюсь обновить существующую запись в моей базе данных на основе того, соответствует ли код страны для каждой страны код страны в анализе XML.Неопределенное обновление метода при обновлении записи в Rails
В моем контроллере у меня есть:
class CountriesController < ApplicationController
def index
@countries = Country.all
travel_alerts = request_data('http://travel.state.gov/_res/rss/TAs.xml')
travel_warnings = request_data('http://travel.state.gov/_res/rss/TWs.xml')
# Sets warnings
warnings_array = travel_warnings["rss"]["channel"]["item"]
warnings_array.each do |warning|
@country = Country.find_by(code: warning["identifier"].strip)
@country.update(title: warning["title"],
description: warning["description"])
end
end
end
...
Я попытался с помощью .update и .save, но ни работы. Когда я пытаюсь обновить, я получаю:
undefined method `update' for nil:NilClass
Необходимо ли явно указывать метод обновления в модели страны? Если да, то как лучше всего получить доступ к анализируемой информации, так как это делается в контроллере?
Это просто означает, что 'Country.find_by (код : warning ["identifier"]. strip) 'ничего не нашел, поэтому' @ country' будет Nil, а Nil не имеет метода обновления. Вы можете проверить, что '@ country' не является Nil, прежде чем пытаться обновить ex. 'if @ country.nil? @ country.update (и т. д.) ' – Clark