Ich versuche, eine Rake-Aufgabe zu erstellen, die Daten von einer API abruft. Die Daten, die ich brauche, haben jedoch Daten von verschiedenen Modellen.Aufruf der ActiveRecord-Beziehung mit dem polymorphen Modell
Hier ist mein Fehler:
[
{
"id": 3,
"name": "Precision Agriculture",
"topics_owners_ids": "#<User::ActiveRecord_Associations_CollectionProxy:0x000000095fa498>",
"keywords_list": null,
"keywords": [
],
"organizations_list": null,
"organizations": [
],
"social_groups_list": null,
"feeds_list": null,
"articles_list": null,
"people": null
}
]
Hier ist meine Rake Aufgabe:
namespace :fieldfacts do
desc "Export Topics"
task :export_topics => :environment do
out = []
File.open("public/topics.json","w") do |f|
Topic.all.each do |topic|
api = TopicsService.new()
topic_api = api.get(topic.topic_api_id)
out << {
'id' => topic.id,
'name' => topic.name,
'topics_owners_ids' => topic.users.id,
'keywords_list' => topic_api.keywords_list,
'keywords' => topic_api.keywords,
'organizations_list' => topic_api.organizations_list,
'organizations' => topic_api.organizations,
'social_groups_list' => topic_api.social_groups_list,
'feeds_list' => topic_api.feeds_list,
'articles_list' => topic_api.articles_list,
'people' => topic_api.people
}
end
f.write(JSON.pretty_generate(out))
end
end
end
Wie Sie sehen können, ist der topics_owners_ids nicht die richtigen Daten zurück. Ich bin mir nicht sicher, wie ich es holen soll.
Ich denke, es funktioniert, obwohl jede ID ist 1 und ich bin mir nicht sicher, wie man überprüft, ob das korrekt ist oder nicht. –
Möglicherweise sind alle Ihre Themen mit demselben Benutzer verknüpft. Sie können das in Ihrer Datenbank überprüfen. Wenn Sie nur eindeutige IDs benötigen, können Sie auch 'topic.users.pluck (: id) .compact.uniq' verwenden. Dies wird auch Null loswerden. – archana