在Rails 4中,默认情况下禁用强参数



是否有禁用强参数的方法?

我知道这是一个安全漏洞,但我真的不需要/想要它。

关闭属性保护几乎总是个坏主意。

有了这个必须注意的事项,以下是如何关闭它:

config.action_controller.permit_all_parameters = true

将其放入config/application.rb

我遇到了这个问题,我试图存储Stripe中webhook中的所有param。

如果您想允许单个实例的所有参数,可以在将params对象传递到initialize方法之前,对其调用#to_hash。

例如:

@my_object = MyObject.new(params[:my_object].to_hash)

如果您所说的"disable"是指回到Rails 3风格的attr_accessible行,那么是的。

只需使用protected_attributes宝石。

我不这么认为。

DHH在这里评论了向强参数添加禁用开关的请求

所有这些都是遗留问题,因为Rails4.0会强制每个人使用强参数,而你将无法关闭它

要停止为应用程序检查禁止的属性,您可以修补检查。。

例如,在中放入以下代码

config/initializers/deisable_strong参数.rb

module ActiveModel
  module ForbiddenAttributesProtection
    protected
      def sanitize_for_mass_assignment(attributes)
          attributes
      end
      alias :sanitize_forbidden_attributes :sanitize_for_mass_assignment
  end
end

当然可以!根据强参数的官方文件(https://github.com/rails/strong_parameters),您可以通过将以下代码添加到您的config/application.rb:来禁用

config.active_record.whitelist_attributes = false

它适用于rails 3.2

相关内容

  • 没有找到相关文章

最新更新