私の Ruby on Rails アプリケーションには、Artist と Song という 2 つのモデルがあります。それらは次のように関連付けられています。
class Artist < ActiveRecord::Base
has_many :曲
attr_accessible :artist_name
と
class Song < ActiveRecord::Base
所属先:アーティスト
attr_accessible :title, :track_URL, :artist_id
views/artist/show.html.erb に次のコードがあります。
<%= render 'artist_song' %>
<table>
<% @artist.songs.each do |song| %>
<tr>
<td><%= song.title %></td>
</tr>
<% end %>
</table>
同じビューで render(_artist_song.html.erb) しようとしている部分的な Im は次のようになります。
<table>
<% @artist = Artist.all %>
<% @artist.each do |artist| %>
<tr>
<td><%= link_to artist.artist_name, artist %></td>
</tr>
<% end %>
</table>
パーシャルの下にあるコードは、特定のアーティストに属するすべての曲を表示する必要があります。table タグ内のパーシャルとコードの両方が個別に機能しています。しかし、それらをまとめると、それらの間に競合があるように見え、サーバーは次の No Method Error を表示しています。
NoMethodError in Artists#show
Showing C:/Sites/OML/app/views/artists/show.html.erb where line #9 raised:
undefined method `songs' for #<Array:0x5fe1418>
Extracted source (around line #9):
6:
7:
8: <table>
9: <% @artist.songs.each do |song| %>
10: <tr>
11: <td><%= song.title %></td>
12: </tr>
Rails.root: C:/Sites/OML
Application Trace | Framework Trace | Full Trace
app/views/artists/show.html.erb:9:in `_app_views_artists_show_html_erb__950110288_54062208'
app/controllers/artists_controller.rb:21:in `show'
解決策が見つかりませんでした。どんな助けでも大歓迎です。ありがとうございました。