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

Mik*_*vis 10 ruby-on-rails strong-parameters ruby-on-rails-4

无论如何禁用强力参数?

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

iai*_*ain 45

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

有了这个强制性的说明,这里是如何关闭它:

config.action_controller.permit_all_parameters = true
Run Code Online (Sandbox Code Playgroud)

把它放进去 config/application.rb

  • 在重新处理每个模型和控制器以使用新的质量分配保护工作之前,迁移较旧的(Rails 3.2)应用程序并尝试在迁移时尝试获取现有规范时,此提示非常有用. Rails采用的方法4. (4认同)
  • 为我工作.同意 - 这通常是一个坏主意 - 但我的用例是管理员网站,管理员可以更改任何内容. (2认同)

gab*_*ess 6

我遇到了这个问题,我试图从Stripe的webhook中存储所有参数.

如果要允许单个实例的所有参数,可以在params对象上调用#to_hash,然后再将其传递给initialize方法.

例如:

@my_object = MyObject.new(params[:my_object].to_hash)
Run Code Online (Sandbox Code Playgroud)


dep*_*epa 4

如果“禁用”意味着退回到 Rails 3 风格的attr_accessible线路,那么是的。

只需使用protected_attributes gem。