Предположим, если у нас есть альбом, исполнитель и модель песни в рельсах.
В альбоме:
class Album < ActiveRecord::Base
has_many :artist_album
has_many :artist, :through => :artist_album
has_many :song
В Artistalbum:
class ArtistAlbum < ActiveRecord::Base
belongs_to :album
belongs_to :artist
end
В песне:
class Song < ActiveRecord::Base
has_many :artist_song
has_many :artists, :through => :artist_song
belongs_to :album
В исполнителе:
class Artist < ActiveRecord::Base
has_many :artist_song
has_many :song, :through => :artist_song
Можно ли при активной записи выбрать следующий набор записей:
- Найти альбом, который принадлежитисполнитель
Поскольку исполнители привязаны к песням, а альбомы представляют собой только наборы песен, и между исполнителем и альбомом нет прямой связи.
А также выбор каждого изпесни принадлежат каждому из альбомов для рассматриваемого исполнителя
По сути что-то на этот счет:
SELECT albums.`name`
FROM artists INNER JOIN artist_songs ON artists.id = artist_songs.artist_id
INNER JOIN songs ON songs.id = artist_songs.song_id
INNER JOIN albums ON songs.album_id = albums.id