在 rails 4.0 中 的controller 中 使用 create 新建 model 的时候 , 会出现 ActiveModel::ForbiddenAttributesError
def create
SysParam.create(params[:sys_param])
@sys_param.save
end
会出现 ActiveModel::ForbiddenAttributesError 。产生这个错误的原因是 在4.0 中不再使用在model中定义 access_attribute 的方法来进行安全更新字段的处理。
而是在controller 中使用 strong-parameters 来进行处理
相应的方法修改成
def create
@sys_param = SysParam.create(sys_param_params)
@sys_param.save
end
private
def sys_param_params
params.require(:sys_param).permit(:id,:value,:code,:type_flag,:desc)
end
在
params.require(:sys_param).permit(:id,:value,:code,:type_flag,:desc)
语句中定义可以被修改的字段内容。
更多的内容参考
http://blog.sensible.io/2013/08/17/strong-parameters-by-example.html
http://www.cnblogs.com/marvin007/p/3186512.html