在rails 4.0 中 使用strong_parameters 来避免 ActiveModel::ForbiddenAttributesError 错误

在 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



你可能感兴趣的:(ruby,&,rails)