Как да актуализирам вложени обекти след актуализация на strong_parameters на rails 3.2?

Използвам strong_parameters gem с Rails 3.2 от известно време. И до сега всичко беше наред.

След скорошна актуализация на strong_parameters до v0.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 това и params онова. Просто не актуализирам вложени обекти. Моля помогнете

Отначало си помислих, че 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