使用f.select,未定义的方法`map'为nil:NilClass

时间:2012-11-08 19:04:45

标签: ruby-on-rails ruby

好的,所以我想以f.select形式列出我的类型,我收到了一个错误。我到处寻找,我只是不明白我在做什么不同。当我输入rails c并输入g = Genre.all时,它会列出所有类型,然后g.map输出=> #<Enumerator: ...>

错误:

undefined method `map' for nil:NilClass

查看页面:

<%= f.fields_for :genres do |g| %>
  <div class="field">
    <%= g.label :genre %>
    <%= g.select :genres, @genres.map {|g| g.name} %>
  </div>
<% end %>

控制器:

def create
  @song = Song.new(params[:song])
  @genres = Genre.all
  if @song.save
    redirect_to player_path
  else
    render :new
  end
end

1 个答案:

答案 0 :(得分:2)

您还需要在@genres操作中指定new变量:

def new
  @genres = Genre.all
end