2013-03-06 1 views
2

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

После недавнего обновления сильных_параметров до v0.2.0 я больше не могу обновлять вложенные объекты.

Вот запрос Params

{ 
    "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 => []) должен сделать трюк, однако это провалилось, и я попробовал различные другие варианты. Все они потерпели неудачу.

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

+0

Можете ли вы поместить свой код модели? Вероятно, проблема с массовым назначением (attr_accessible) – rorra

+0

attr_accessible не является проблемой. На самом деле я не использую его '' 'config.active_record.whitelist_attributes = false''' – graudeejs

ответ

0

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

+0

Я тоже это пробовал. Это не работает. По-видимому, этот вопрос не решен: https://github.com/rails/strong_parameters/pull/121#issuecomment-15469655 и другие вопросы – graudeejs

 Смежные вопросы

  • Нет связанных вопросов^_^