中間テーブルを通してデータを取得したい

解決したいこと

Ruby on Railsで投稿型のアプリを作っています
アーティストページで、関係する全てのジャンル名を表示したいのですが、中間テーブルを通してうまくデータを引っ張る事ができません。解決方法を教えてほしいです。

ER図
スクリーンショット 2022-07-29 16.02.19.png

発生している問題・エラー

NoMethodError in Admin::ArtistsController#show undefined method `genre' for #<ArtistGenre::ActiveRecord_Relation:0x00000000044fa5e8>

エラーが起きたコード

ruby:エラー

@genres = @artist_genre.genre

該当するソースコード

ruby:model

class Artist < ApplicationRecord has_many :artist_genres, dependent: :destroy has_many :genres, through: :artist_genresend

ruby:model

class Genre < ApplicationRecord has_many :artist_genres, dependent: :destroyend

ruby:model

class ArtistGenre < ApplicationRecord belongs_to :artist belongs_to :genreend

ruby:controller

class ArtistsController < ApplicationController def show @artist = Artist.find(params[:id]) @artist_genre = ArtistGenre.where(artist_id: @artist.id) @genres = @artist_genre.genre end

ruby:view

ジャンル <% @genres.each do |genre| %> <%= @genre.name %><% end %>

よろしくお願いします

コメントを投稿

0 コメント