好的,所以我想以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
答案 0 :(得分:2)
您还需要在@genres
操作中指定new
变量:
def new
@genres = Genre.all
end