在过去的几个小时里,我一直试图找出我做错了什么,但我无法找到解决方案。简而言之,我试图用一个名为“学期”的表中的数据填充一个选择框。(我在 SO 上看到了很多关于此的问题,但我无法让它们与我的应用程序一起使用)。
这是我所拥有的:
课程控制器
class CoursesController < ApplicationController
def create
@semesters = Semester.all()
@course = Course.new(params[:course])
# Save the object
if @course.save
flash[:notice] = "Course created."
redirect_to(:action => 'list')
else
# If save fails, redisplay the form so user can fix problems
render('new')
end
end
end
看法
#views/courses/new.html.erb
<%= form_for(:course, :url => {:action => 'create'}) do |f| %>
<%= f.select(:semester, @semesters.map { |s| [ s.name, s.id ] }) %>
<%= submit_tag("Create Course") %>
<% end %>
我希望它会输出:
<select>
<option id="1">Spring 2013</option>
<option id="2">Fall 2013</option>
</select>
但是,相反,我收到了错误:
views/courses/new.html.erb where line #32 raised:
undefined method `map' for nil:NilClass
第 32 行对应于我的表单助手选择。
对此的任何帮助都会很棒!