Strong_parameters no funciona
Con Ruby 1.9.3, Rails 3.2.13, Strong_parameters 0.2.1:
He seguido todas las indicaciones en los tutoriales y en las transmisiones ferroviarias, pero no puedo hacer funcionar los parámetros fuertes. Debería ser algo realmente simple, pero no puedo ver dónde está el error.
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
Esto provoca la excepción de atributos prohibidos, como se esperaba. Pero cuando me muevo a:
...
def create
@product = Product.new(product_params)
# and same flow than before
end
private
def product_params
params.require(:product).permit(:name)
end
Luego, si voy al formulario y escribo "Nombre: producto 1" y "Color: rojo" no se genera ninguna excepción; el nuevo producto se guarda en la base de datos sin color pero con el nombre correcto.
¿Qué estoy haciendo mal?