我得到的一个未知原因:nil的未定义方法`map':NilClass错误

时间:2018-02-02 18:47:15

标签: ruby-on-rails ruby

当我尝试保存论坛时,我正在为nil获取一个未定义的方法`map':NilClass。

这是我的 jobs_controller.rb

def new
@job_categories = JobCategory.all.map{|c| [ c.title, c.id ] }
@job = Job.new
end


def edit
@job_categories = JobCategory.all.map{|c| [ c.title, c.id ] }
@job = Job.find(params[:id])
end

def create
@job = Job.new(job_params)
respond_to do |format|
if @job.save
    format.html { redirect_to @job, notice: 'Job was successfully created.' }
    format.json { render :show, status: :created, location: @job }
  else
    format.html { render :new }
    format.json { render json: @job.errors, status: :unprocessable_entity }
  end
end
end


def update
respond_to do |format|
  if @job.update(job_params)
    format.html { redirect_to @job, notice: 'Job was successfully 
updated.' }
    format.json { render :show, status: :ok, location: @job }
  else
    format.html { render :edit }
    format.json { render json: @job.errors, status: :unprocessable_entity }
  end
end
end

这是我的 jobs / _form.html.erb

<div class="field-group">
<p>Jobs Category</p>
<%= form.select(:job_category_id, options_for_select(@job_categories)) %>


我的jobs_categories也拥有自己的控制器和模型。 如果您需要任何其他信息,请随时提出。

enter image description here

当我尝试提交表单时,我的错误正在发生。

1 个答案:

答案 0 :(得分:1)

@job_categories变量缺少createupdate次操作。在无效保存后,表单呈现时会导致错误 - options_for_select尝试在未声明的变量上调用.map