我是Rails的新手,所以我將嘗試並盡我所能解釋這一點。在一個控制器中調用兩個依賴於彼此的模型以查看視圖
我有三個型號:藝人,巨星和festival_artist
藝術家只含有一個ID和這位演出
巨星只含有一個ID和一個festival_name
festival_artist包含一個ID,一個artist_id和festival_id
我使用腳手架創建了Fest,這是我的控制器和show.html.erb的地方。
下面是我的模型:
class Artist < ApplicationRecord
belongs_to :festival_artist
end
class Fest < ApplicationRecord
belongs_to :festival_artist
end
class FestivalArtist < ApplicationRecord
has_many :artists
has_many :fests
end
在我fests_controller.rb我:
def show
@festival_artists = FestivalArtist.where(festival_id: @fest.id)
end
我嘗試添加:
def show
@festival_artists = FestivalArtist.where(festival_id: @fest.id)
@artists = Artist.where(id: @festival_artists.artist_id)
end
然而,拋出一個未定義的方法artist_id爲#錯誤。
目標是在該藝術家所屬藝術節的節日的show.html.erb頁面中顯示藝術家的名字。
在SQL這將是:
SELECT A.artist_name
FROM festival_artists AS FA
INNER JOIN artists AS A
ON FA.artist_id = A.id
有什麼建議?甚至告訴我谷歌會幫助什麼,因爲我不確定我的術語是否正確。
讓我知道你是否需要任何信息。
謝謝!這工作。我不得不改變節日藝術家課堂,以使這些單數,但之後它的工作。我會更詳細地閱讀那篇文章。 – Austin