Nit*_*ths -4 ruby ruby-on-rails-3.2
我有一个任务来访问创建新用户的param值.我的控制器代码是create
def newstudent
@student = Student.new(params)
puts "+++++++++++"
puts params.inspect
if @student.save
respond_to do |format|
format.html # new.html.erb
format.json { render :json => @jtable }
end
end
end
Run Code Online (Sandbox Code Playgroud)
但通过这样做我终端有一些错误.它显示这样
ActiveModel::MassAssignmentSecurity::Error (Can't mass-assign protected attributes: action, controller):
app/controllers/students_controller.rb:42:in `new'
app/controllers/students_controller.rb:42:in `newstudent'
Run Code Online (Sandbox Code Playgroud)
请帮帮我解决问题?
这是我添加新学生的控制器.通过获取该错误消息,您必须使用@student = Student.new(params.reject {|key,value| key =="controller" || key =="action"})代码拒绝控制器和操作 .
def newstudent
@student = Student.new(params.reject {|key,value| key =="controller" || key =="action"})
if @student.save
@jtable = {'Result' => 'OK','Record' => @student.attributes}
else
@jtable = {'Result' => 'ERROR','Message'=>'Empty'}
end
respond_to do |format|
format.html # new.html.erb
format.json { render :json => @jtable }
end
end
Run Code Online (Sandbox Code Playgroud)