Próbuję dołączyć do pierwszej piosenki z każdej listy odtwarzania do zestawu list odtwarzania i mam dość trudny czas, aby znaleźć skuteczne rozwiązanie.Zdobądź pierwsze skojarzenie od wielu poprzez stowarzyszenie
mam następujące modele:
class Playlist < ActiveRecord::Base
belongs_to :user
has_many :playlist_songs
has_many :songs, :through => :playlist_songs
end
class PlaylistSong < ActiveRecord::Base
belongs_to :playlist
belongs_to :song
end
class Song < ActiveRecord::Base
has_many :playlist_songs
has_many :playlists, :through => :playlist_songs
end
chciałbym uzyskać to:
playlist_name | song_name
----------------------------
chill | baby
fun | bffs
Mam dość trudny czas znalezienia skutecznego sposobu, aby to zrobić poprzez sprzężenie.
UPDATE * ***
Shane Andrade ma prowadzić mnie we właściwym kierunku, ale nadal nie mogę dostać dokładnie to, co chcę.
To jest tak daleko, jak udało mi się dostać:
playlists = Playlist.where('id in (1,2,3)')
playlists.joins(:playlist_songs)
.group('playlists.id')
.select('MIN(songs.id) as song_id, playlists.name as playlist_name')
To daje mi:
playlist_name | song_id
---------------------------
chill | 1
Jest blisko, ale muszę pierwszy utwór (wg id) Imię.
Jaką macierz listy odtwarzania chcesz dołączyć do każdej piosenki? Wszystkie listy odtwarzania zawierające tę piosenkę? – Leito
Czy próbujesz wyszukać wszystkie listy odtwarzania z podaną nazwą i daną piosenką? Czy chcesz po prostu wydrukować tablicę wszystkich nazw list odtwarzania obok ich pierwszego utworu? –
@rkirtscientist the later. Nazwy playlist obok ich pierwszego utworu – mrabin