Silne parametry nie działają

Z Ruby 1.9.3, Rails 3.2.13, Strong_parameters 0.2.1:

Śledziłem wszystkie wskazania w samouczkach i widowiskach kolejowych, ale nie mogę uzyskać działania parametrów strong_parametr. Powinien być czymś naprawdę prostym, ale nie widzę, gdzie jest błąd.

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

app / controllers / products_controller.rb:

class ExpedientesController < ApplicationController
  ...
  def create
    @product = Product.new(params[:product])
    if @product.save
      redirect_to @product
    else
      render :new
    end
  end
end

Zgodnie z oczekiwaniami powoduje to wyjątek Forbidden Attributes. Ale kiedy przeprowadzam się do:

 ...
  def create
    @product = Product.new(product_params)
    # and same flow than before
  end
  private
  def product_params
    params.require(:product).permit(:name)
  end

Następnie, jeśli przejdę do formularza i wprowadzę „Nazwa: produkt 1” i „Kolor: czerwony”, żaden wyjątek nie zostanie zgłoszony; nowy produkt jest zapisywany w bazie danych bez koloru, ale z odpowiednią nazwą.

Co ja robię źle?

questionAnswers(1)

yourAnswerToTheQuestion