Ruby on rails 强_参数不起作用

Ruby on rails 强_参数不起作用,ruby-on-rails,ruby-on-rails-3,strong-parameters,Ruby On Rails,Ruby On Rails 3,Strong Parameters,使用Ruby 1.9.3、Rails 3.2.13、strong\u参数0.2.1: 我已经遵循了教程和railscasts中的每一个指示,但我无法让强_参数工作。这应该很简单,但我看不出哪里有错误 config/initializers/strong_parameters.rb: ActiveRecord::Base.send(:include, ActiveModel::ForbiddenAttributesProtection) config/application.rb config.

使用Ruby 1.9.3、Rails 3.2.13、strong\u参数0.2.1:

我已经遵循了教程和railscasts中的每一个指示,但我无法让强_参数工作。这应该很简单,但我看不出哪里有错误

config/initializers/strong_parameters.rb:

ActiveRecord::Base.send(:include, ActiveModel::ForbiddenAttributesProtection)
config/application.rb

config.active_record.whitelist_attributes = false
app/models/product.rb

class Product < ActiveRecord::Base
end
然后,如果我进入表格并输入“名称:产品1”和“颜色:红色”,则不会引发任何异常;新产品以正确的名称保存在数据库中,没有颜色

我做错了什么?解决了

默认情况下,不允许属性的使用会自动失败,因此提交的属性会被过滤掉并忽略。在开发和测试环境中,也会记录错误

要更改默认行为,例如在开发环境中: config/environments/development.rb:

# Raises an error on unpermitted attributes assignment
  config.action_controller.action_on_unpermitted_parameters = :raise  # default is :log
老实说,这在github存储库中解释得非常清楚。

有类似的教程依赖于默认值
:raise
,这令人困惑。谢谢你回答这个问题。
 ...
  def create
    @product = Product.new(product_params)
    # and same flow than before
  end
  private
  def product_params
    params.require(:product).permit(:name)
  end
# Raises an error on unpermitted attributes assignment
  config.action_controller.action_on_unpermitted_parameters = :raise  # default is :log