在Rails Controller中创建记录时,发生以下错误:
在2018-06-27 08:11:01为127.0.0.1开始发布POST“ / spr_type_courses”
+0500由SprTypeCoursesController#create作为HTML参数进行处理:{“ spr_type_course” => {}}不允许的参数:
:spr_type_course序列(3.0ms)从中选择us.sequence_name
all_sequences指向我们,其中us.sequence_owner ='PROJECT'和
us.sequence_name = upper('SPR_TYPECOURSES_seq')主键(10.0ms)
从all_constraints c,all_cons_columns cc中选择cc.column_name
c.owner ='PROJECT'AND c.table_name ='SPR_TYPECOURSES'和
c.constraint_type ='P'AND cc.owner = c.owner AND cc.constraint_name
= c.constraint_name主键触发器(3.8ms)SELECT trigger_name 来自all_triggers 所有者='PROJECT' AND trigger_name = q'[PROJECT.SPR_TYPECOURSES_PKT]' AND table_owner ='PROJECT' AND table_name = q'[SPR_TYPECOURSES]' AND状态=“已启用”
SQL(5.3毫秒)插入“项目”。“ SPR_TYPECOURSES”
(“ TYPECOURSE_ID”)值(:a1)[[“ typecourse_id”,3623]已完成500 内部服务器错误在61毫秒内
ActiveRecord :: NotNullViolation(OCIError:ORA-01400:无法插入
NULL插入(“ PROJECT”。“ SPR_TYPECOURSES”。“ DATE_BEGIN”):插入
“项目”。“ SPR_TYPECOURSES”(“ TYPECOURSE_ID”)值(:a1)):
app / controllers / spr_type_courses_controller.rb:17:在“创建”中
这意味着什么,需要做些什么来纠正它?
class SprTypeCoursesController < ApplicationController
before_action :set_spr_type_course, only: [:show, :update, :destroy]
def index
@spr_type_courses = SprTypeCourse.all
render json: @spr_type_courses
end
def show
render json: @spr_type_course
end
def create
@spr_type_course = SprTypeCourse.new(spr_type_course_params)
if @spr_type_course.save
render json: @spr_type_course, status: :created, location: @spr_type_course
else
render json: @spr_type_course.erros, status: :unprocessable_entity
end
end
def update
if @spr_type_course.update(spr_type_course_params)
render json: @spr_type_course
else
render json: @spr_type_course.errors, status: :unprocessable_entity
end
end
def destroy
@spr_type_course.destroy
end
private
def set_spr_type_course
@spr_type_course = SprTypeCourse.find(params[:id])
end
# Only allow a trusted parameter "white list" through.
def spr_type_course_params
params.permit(
:typecourse_id,
:date_begin,
:date_end,
:name,
:comments,
:active_id
)
end
end
答案 0 :(得分:0)
您的spr_type_course_params
是问题所在。
如您在错误日志中所见,强参数中不允许使用spr_type_course
参数。另外,spr_type_course
参数为空。请检查提交的表格。
{“ spr_type_course” => {}}不允许的参数:
通过以下更改:
def spr_type_course_params
# here I assume the typecourse_id, date_begin etc params are all
# included in spr_type_course schema
params.require(:spr_type_course).permit(
:typecourse_id,
:date_begin,
:date_end,
:name,
:comments,
:active_id
)
end