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

本文详细解释了在Rails 4.0中使用create方法新建model时遇到的ActiveModel::ForbiddenAttributesError错误产生的原因,并提供了相应的解决方法。通过在controller中引入强参数处理(strong-parameters),可以有效避免该错误的出现。文章还链接了两个详细的教程,帮助开发者进一步理解并应用这一解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 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



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值