我在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