我所了解的是,如果未在
中明确声明变量 params.require(:emergency).permit(...)
变量不能被大量分配但是当我运行我的测试时它会通过,当我进入Rails控制台并输入
e = Emergency.new(id:10);
e.save, =>true returns
对我来说真的很奇怪,我的rails应用程序中的设置是否有问题?
def create
@emergency = Emergency.new(emergency_params)
end
def emergency_params
params.require(:emergency).permit(:fire_severity,:police_severity,:medical_severity,:code)
end
test 'POST /emergencies/ cannot set id' do
post '/emergencies', emergency: { id: 1, fire_severity: 1, police_severity: 2, medical_severity: 3 }
assert_equal 201, response.status
end
答案 0 :(得分:1)
每http://api.rubyonrails.org/classes/ActionController/Parameters.html -
如果您希望在此方案中引发异常,请确保ActionController::Parameters.action_on_unpermitted_parameters
设置为:raise
。