我是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