加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails中的强参数3.2.8

发布时间:2020-12-16 20:25:56 所属栏目:百科 来源:网络整理
导读:This video表示,可以保护通过控制器进入的输入,但仍然可以通过型号和规格进行大量分配.但是,在3.2.8中使用strong_parameters时,我没有看到这是一个功能. 我明白,我需要将ActiveModel :: ForbiddenAttributesProtection混合到我的模型中,并在config / applica
This video表示,可以保护通过控制器进入的输入,但仍然可以通过型号和规格进行大量分配.但是,在3.2.8中使用strong_parameters时,我没有看到这是一个功能.

我明白,我需要将ActiveModel :: ForbiddenAttributesProtection混合到我的模型中,并在config / application.rb中设置config.active_record.whitelist_attributes = false.我也从模型中拉出了我所有的attr_accessible电话.

有或没有mixin我正在获得质量分配错误.

::加载ActiveModel :: MassAssignmentSecurity错误:
不能大量分配受保护的属性:home_phone,cell_phone

我错过了什么吗?

解决方法

建议的 RailsCast可能是一个很好的开始,但这里是您在Rails3.x中必须做的事情的总结,以获得强参数而不是attr_accessible:

>将gem’strong_parameters’添加到您的Gemfile并运行包.
>注释(或设置为false)config.active_record.whitelist_attributes = true在config / application.rb
>混合在您的模型中的ActiveModel :: ForbiddenAttributesProtection(Railstast建议在新的初始化程序中执行此操作,config / initializers / strong_parameters.rb ActiveRecord :: Base.send(:include,ActiveModel :: ForbiddenAttributesProtection))
>从现在开始,您将不得不使用如下语法:

model_params = params[:model].permit( :attribute,:another_attribute )
@model.update_attributes( model_params )

当你更新你的模型.在这种情况下,params [:model]中除属性和另一个_attribute之外的任何属性将导致ActiveModel :: ForbiddenAttributes错误.

您还可以使用ActionController :: Parameters中的其他新功能,例如.require(:attribute)强制存在属性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读