Ответ 1
ActionController автоматически делает это для запросов JSON, чтобы вы могли легко передавать параметры в Example.create
или @example.update_attributes
, что означает, что клиенту не нужно их упаковывать для своей модели - он может включать только name
et. и др. на верхнем уровне ваших данных JSON, и контроллер будет обрабатывать группировку.
@example = Example.create params[:example]
Код обертывания параметров получает имя вашей модели от имени контроллера, но вы можете изменить его, используя макрос wrap_parameters в вашем контроллере:
wrap_parameters :thing
Или выключите его с помощью
wrap_parameters false
В Rails 3.2, если ваша модель использует attr_accessible
, функция обтекания параметров также исключает любые параметры, недоступные для массового присвоения. Вы также можете использовать макрос, чтобы сделать эту функцию обертки применимой к другим типам контента, кроме JSON, если хотите.
По умолчанию во вновь создаваемом приложении Rails это настроено для всех контроллеров с использованием инициализатора. Найдите config/initializers/wrap_parameters.rb
.