ActionController автоматически делает это для запросов JSON, так что вы можете легко передавать параметры в Example.create
или @example.update_attributes
, что означает, что клиенту не нужно упаковывать их для вашей модели - он может просто включать name
эт. и др. на верхнем уровне ваших данных 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
.