CoursesController中的ArgumentError #create参数超出范围

时间:2016-06-16 06:32:21

标签: ruby-on-rails

我的courses_controller

def create
     @course = Course.new(postparam)
     if @course.save
        flash[:notice] = t('course_created')
        redirect_to courses_path
     else
       render 'new'
     end
end

def postparam
     params.require(:course).permit(:course_name, :section_name, :code, :grading_type, batches_attributes: [:name, :start_date, :end_date])
end

我收到错误信息:

  

CoursesController中的ArgumentError #create参数超出范围

1 个答案:

答案 0 :(得分:0)

这是因为您未正确转换控制器中的start_dateend_date。您首先需要处理start_dateend_date,并制作一个Date对象,您可以通过save实际传递到params方法。

现在,您的start_date将由三部分组成:

  1. start_date(1i)#它包含年份
  2. start_date(2i)#它包含月份
  3. start_date(3i)#它包含日期
  4. 您实际上可以执行以下操作来获取日期对象:

    Date.civil(start_date(1i), start_date(2i), start_date(3i))
    

    有关详细信息,您可以在Rails官方指南中搜索相关主题。