過去数時間、何が間違っているのかを理解しようとしましたが、解決策にたどり着けません。簡単に言えば、「学期」というテーブルのデータを選択ボックスに入力しようとしています。(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 は、フォーム ヘルパーの選択に対応しています。
これに関するどんな助けも素晴らしいでしょう!