С Ruby 1.9.3, Rails 3.2.13, Strong_parameters 0.2.1:
Я следовал всем указаниям в руководствах и рейлскастах, но не могу заставить работать strong_parameters. Это должно быть что-то очень простое, но я не вижу, где ошибка.
config/initializers/strong_parameters.rb:
ActiveRecord::Base.send(:include, ActiveModel::ForbiddenAttributesProtection)
config/application.rb
config.active_record.whitelist_attributes = false
приложение/модели/product.rb
class Product < ActiveRecord::Base
end
приложение/контроллеры/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
Это вызывает исключение Forbidden Attributes, как и ожидалось. Но когда я перехожу к:
...
def create
@product = Product.new(product_params)
# and same flow than before
end
private
def product_params
params.require(:product).permit(:name)
end
Затем, если я перехожу к форме и ввожу «Имя: продукт 1» и «Цвет: красный», никаких исключений не возникает; новый товар сохраняется в базе данных без цвета, но с правильным названием.
Что я делаю неправильно?