Я пытаюсь внести улучшения в школьный проект (супер-новичок), используя засеянные данные из API, чтобы создать приложение CLI с использованием Ruby и ActiveRecord, без Rails. Мне пришлось как бы «обмануть» данные, взяв их (ха sh идентификаторов объектов), добавив этот идентификатор в конец другой URL-ссылки (создав массив этих ссылок), а затем перебрав каждую и сделав запрос GET, поместив его в final ha sh, из которого я перебираю и засеваю свою базу данных.
Один раз мне удалось это сделать, но я хотел расширить набор данных, поэтому я очистил базу данных и пошел на повторное заполнение, и это больше не работает. Он немного зависает, затем вроде завершается, но данных нет. Единственное изменение, которое я внес в свой код, - это URL-адрес, но даже когда я возвращаю его обратно, он больше не работает. Однако он засевает все, что я написал вручную. URL-адрес отлично работает в моем браузере. Я попробовал rake: db: migrate: reset, но, похоже, у меня это не сработало.
Прошу прощения, если мой код немного запутан, я просто пытаюсь разобраться в этой проблеме, и это я впервые работаю с API / создаю такой проект. Я ценю любую помощь. Спасибо!
response = RestClient.get("https://collectionapi.metmuseum.org/public/collection/v1/search?departmentId=11&15&19&21&6q=*")
metData = JSON.parse(response)
url = "https://collectionapi.metmuseum.org/public/collection/v1/objects/"
urlArray = []
metData["objectIDs"].each do |e|
urlArray.push(url.to_s + e.to_s)
end
# urlArray.slice!(0,2)
urlArray
end
object_id_joiner
def finalHash
finalHash =[]
object_id_joiner.each do |e|
response = RestClient.get(e)
data = JSON.parse(response)
finalHash.push(data)
end
finalHash
end
finalHash
finalHash.each do |artist_hash|
if artist_hash["artistDisplayName"] == nil
next
end
if (!artist_hash["artistDisplayName"])
art1 = Artist.create(artist_name:artist_hash["artistDisplayName"])
else
next
end
if (!artist_hash["objectID"])
Artwork.create(title: artist_hash["title"],image: artist_hash["primaryImage"], department: artist_hash["department"], artist: art1, object_id: artist_hash["objectID"])
else
next
end
end