同じコードでも、一つはエラーが出て、もう一つはエラーが出ないのはなぜですか?
編集前
<% @songs.each do |song| %>
<div class="col-md-4 col-sm-6 portfolio-item">
<div class="portfolio-caption">
<h4 class="aaa"><%= link_to song.title, song %><br></h4>
</div>
</div>
この中では使えている<%= link_to song.title, song %>
のtitleメソッドが
編集後
<%= link_to @songs.title, song %> ←これを追加するとエラーが出る
<% @songs.each do |song| %>
<div class="col-md-4 col-sm-6 portfolio-item">
<div class="portfolio-caption">
<h4 class="aaa"><%= link_to song.title, song %><br></h4>
</div>
</div>
<% end %>
このようにすると下記二つのエラーが出るのですが、なぜでしょうか?
undefined method `title' for <Song::ActiveRecord_Relation:------>
titleメソッドが定義されていません
↓song.controller
class SongsController < ApplicationController
before_action :set_song, only: [:show, :edit, :update, :destroy]
before_action :authenticate_user!, except: [:index, :show]
# GET /songs
# GET /songs.json
def index
if params[:user_id]
@user = User.find(params[:user_id])
@songs = @user.songs.order(:cached_votes_up => :desc)
else
@songs = Song.all.order(:cached_votes_up => :desc)
end
end