无论如何禁用强力参数?
我知道这是一个安全漏洞,但我真的不需要它/想要它。
答案 0 :(得分:43)
关闭属性保护几乎总是一个坏主意。
有了这个强制性的说明,以下是关闭它的方法:
config.action_controller.permit_all_parameters = true
将其放在config/application.rb
答案 1 :(得分:6)
我遇到了这个问题,我试图从Stripe的webhook中存储所有参数。
如果要允许单个实例的所有参数,可以在params对象上调用#to_hash,然后再将其传递给initialize方法。
例如:
@my_object = MyObject.new(params[:my_object].to_hash)
答案 2 :(得分:4)
如果通过"禁用"你的意思是回到Rails 3式attr_accessible
行,然后是。
只需使用protected_attributes gem。
答案 3 :(得分:2)
我不这么认为。
DHH评论here on this pull request to add a disable switch to strong parameters
所有这一切都是一个遗留问题,因为Rails 4.0会对每个人施加强大的参数,你将无法将其关闭。
答案 4 :(得分:0)
要停止为您的应用程序检查禁用的属性,您可以修补支票..
例如,将以下代码放入
配置/初始化/ disable_strong_parameters.rb
module ActiveModel
module ForbiddenAttributesProtection
protected
def sanitize_for_mass_assignment(attributes)
attributes
end
alias :sanitize_forbidden_attributes :sanitize_for_mass_assignment
end
end
答案 5 :(得分:-2)
当然可以!根据Strong Parameters的官方文档(https://github.com/rails/strong_parameters),您可以通过在config / application.rb中添加以下代码来禁用:
config.active_record.whitelist_attributes = false
它适用于我的rails 3.2