Ich habe ein Campaign
Modell, das eine Conversion-Rate wie folgt aufgeführt hat:Rails Sortierung Modell durch verschachtelte Attribute in JSONB Feld
campaign.quota_data["raw_quota_data"][0]["Conversion"] = 33
Ich möchte so etwas wie
Campaign.all.order(quota_data["raw_quota_data"][0]["Conversion"])
tun Was ist der beste Weg, dies zu erreichen?
Edit: Beispiel dafür, was die quota_data
Datenstruktur wie folgt aussieht:
{"raw_quota_data"=>
[
{"QuotaCPI"=>1.5, "Questions"=>nil, "Conversion"=>0, "SurveyQuotaID"=>4205891, "SurveyQuotaType"=>"Total", "OverQuotaThreshold"=>true}
],
"available_quotas"=>[{"id"=>4205891, "cpi"=>1.0499999999999998, "name"=>"Total", "traits"=>{}, "available"=>400, "conversion"=>0}],
"rejectable_trait_groups"=>[]
}
Das brachte mich auf dem richtigen Weg. Am Ende wollte ich sie in absteigender Reihenfolge sortieren, also ging ich mit 'atc = atc.sort {| a, b | b.quota_data ["raw_quota_data"] [0] ["Konvertierung"] <=> a.quota_data ["raw_quota_data"] [0] ["Konvertierung"]} ' –
wahrscheinlich Campaign.all.sort_by {| c | -c.quota_data ["raw_quota_data"] [0] ["Konvertierung"]}} hätte funktioniert .. nur ein Minuszeichen für den Wert;) – shiladitya