Ruby on Rails 응용 프로그램에서 뭔가 고민하고 있습니다. 이 동적으로 모든 장르를 표시하고 선택-수 있습니다 내 부분이다노래 # 장르의 NoMethodError. Nil 클래스에 대해 정의되지 않은 메소드 'each': NilClass
def genre
@songs = Song.find_all_by_genre(params[:id])
@genre = (params[:id])
respond_to do |format|
format.html # index.html.erb
format.json {render json: @songs}
end
end
: 내 songs
컨트롤러에 새로운 방법을 만들었습니다
class Song < ActiveRecord::Base
attr_accessible :duration, :title, :track_URL, :genre, :image_url
end
:
이 내 모델입니다 :
여기까지 모든 것이 작동하지만, 대신 장르를 선택하면 모든 노래가 렌더링됩니다.그것은 나에게 내가 새로운 응용 프로그램과 해당 작업에서 그 같은 방법을 시도
NoMethodError in Songs#genre
Showing C:/Sites/OML/app/views/songs/genre.html.erb where line #3 raised:
undefined method `each' for nil:NilClass
Extracted source (around line #3):
1: <h2><%= @genre %></h2>
2:
3: <% @songs.each do |song| %>
4: <%= song.title %>
5: <%= song.genre %>
6: <% end %>
컨트롤러에 방법이처럼 이해 할 수없는 오류를 제공보기! 내 문제는 어디에있을 수 있습니까? '정의되지 않은 메서드를 각각 : 실제로 노래가있는 경우
처럼 확인하기 위해 일부 변경
'for nil : NilClass'? – pjmorse
내가 한 일과 대부분의 문제점에서 특정 뷰 또는 잘못된 유형의 인스턴스 변수에 대한 메소드가 누락되었음을 발견했습니다. 몇 번이나 코드를 다시 확인했는데 괜찮은 것 같습니다. .. 그래서 나는 정말로 문제를 찾을 곳을 모른다. – ibechev