Как обновить вложенные объекты после обновления strong_parameters на rails 3.2?

Я уже давно использую гем strong_parameters с Rails 3.2. И до сих пор все было в порядке.

После недавнего обновления strong_parameters до версии 0.2.0 я больше не могу обновлять вложенные объекты.

Вот параметры запроса

{
  "resource"=>{
    "name"=>"1362483207-11-offer",
    "slug"=>"1362483207-11-offer",
    "code"=>"136248320711",
    "category_id"=>"4",
    "price"=>"100",
    "short_description"=>"",
    "description"=>"",
    "offer_card_types_attributes"=>{
      "0"=>{"id"=>"11", "card_type_id"=>"1"},
      "1"=>{"card_type_id"=>"0"},
      "2"=>{"card_type_id"=>"0"},
      "3"=>{"card_type_id"=>"0"}
    },
    "show_banner"=>"1",
    "autoclaim"=>"1",
    "published"=>"0",
    "number_of_codes_to_generate"=>"",
    "images_attributes"=>{
      "0"=>{"retained_image"=>"", "_destroy"=>"true", "id"=>"1"},
      "on-1362560061857"=>{
        "image"=>#<ActionDispatch::Http::UploadedFile:0x0000080ef654f8 ... >
      }
    },

    "partner_id"=>"2",
    "all_checkout_places"=>"0",
    "offer_checkout_places_attributes"=>{
      "0"=>{"checkout_place_id"=>"0"},
      "1"=>{"id"=>"11", "checkout_place_id"=>"7"},
      "2"=>{"checkout_place_id"=>"0"},
      "3"=>{"checkout_place_id"=>"0"},
      "4"=>{"checkout_place_id"=>"0"}
    }
  },
  "id"=>"11"
}

Я пробовал params this и params that. Я просто не обновляю вложенные объекты. Пожалуйста помоги

Сначала я думал, что params.require(:resource).permti(..., :images => []) должен помочь, но это не помогло, затем я попробовал другие варианты. Все они потерпели неудачу.

Как я могу разрешить все эти вложенные объекты.


person graudeejs    schedule 06.03.2013    source источник
comment
можно код модели? Вероятно, это проблема с массовым назначением (attr_accessible)   -  person rorra    schedule 06.03.2013
comment
attr_accessible не проблема. На самом деле я им не пользуюсь config.active_record.whitelist_attributes = false   -  person graudeejs    schedule 06.03.2013


Ответы (1)


Вы проверяли журналы? Ключ для вложенных атрибутов будет images_attributes, а не images. Это то, что вам нужно передать в методе permit(), чтобы он заработал.

person Greg Karékinian    schedule 26.03.2013
comment
Я пробовал и это. Это не работает. По-видимому, эта проблема не решена: github.com/rails/strong_parameters/pull/ и другие вопросы - person graudeejs; 26.03.2013