Ich möchte eine erweiterte Active Record-Abfrage auf meine Modelle durch einen Join und zählen Sie alle Datensätze. Ich weiß nicht, ob es möglich ist, zu tun, was ich will, aber ich denke, dass es getan werden kann.Rails erweiterte Active Record-Abfrage
Ich möchte wissen, wie oft ein einzelnes Lied auf einer Radiostation gespielt wird. Ich habe folgendes versucht, aber es hat offensichtlich nicht funktioniert.
@top_songs = Song.joins(:radiostation).where("radiostations.id = ?", 1).order(total_counter: :desc)
Ich spielte auch wenn die Generalplaylist Modell mit Gruppe aber der Nachteil ist, dass es einen Hash als Folge und nicht eine Active Beziehung gibt.
Generalplaylist.where("radiostation_id = ?", 1).group(:song_id).count
Gibt es einen anderen Weg, um das Ergebnis zu erhalten?
Hier ist mein Modell für meine Radio Wiedergabelisten Website
generalplaylist.rb
class Generalplaylist < ActiveRecord::Base
belongs_to :song
belongs_to :radiostation
belongs_to :artist
end
song.rb
class Song < ActiveRecord::Base
has_many :generalplaylists
has_many :radiostations, through: :generalplaylists
belongs_to :artist
end
radiostaion.rb
class Radiostation < ActiveRecord::Base
has_many :generalplaylists
end
class Artist < ActiveRecord::Base
has_many :generalplaylists
has_many :songs
has_many :radiostations, through: :generalplaylists
end
Hallo Joshua, ich habe die Gruppe Methode am Ende mit und verarbeitet, um die Gruppe der Song-Details zu finden, dass ich Auf der Suche nach. Es schien das Beste für meine Situation zu sein. Danke für deine Hilfe! – Samuel