我在Ruby on Rails应用程序中苦苦挣扎。
这是我的模型:歌曲#流派中的NoMethodError。未定义的方法'each'for nil:NilClass
class Song < ActiveRecord::Base
attr_accessible :duration, :title, :track_URL, :genre, :image_url
end
我在songs
控制器提出了新的方法:
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 = Song.select('DISTINCT genre')%>
<li>
<% @songs.each do |g| %>
<a href="/genre/<%= g.genre %>"><%= g.genre %></a>
<% end %>
</li>
到这里一切正常,但是当我选择一个流派,而不是渲染的所有歌曲在songs/genre.html.erb
鉴于它给了我错误,因为我有方法在控制器
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 %>
我曾尝试在一个全新的应用程序,其工作的,同样的方式,我无法理解! 哪里可能是我的问题?
你尝试搜索错误,“NoMethodError:未定义的方法“各'为零:NilClass“? – pjmorse 2013-05-06 11:03:48
我做了,而且在大多数情况下,我发现问题缺少特定视图或错误类型实例变量的方法。我几次重新检查了我的代码,所有这些似乎都没问题。 ..我真的不知道在哪里寻找问题 – ibechev 2013-05-06 12:21:11