2013-03-06 1 views
2

J'utilise le paramètre strong_parameters gem avec Rails 3.2 depuis un bon bout de temps. Et jusqu'à maintenant tout allait bien. Après la récente mise à jour des paramètres forts vers la version 0.2.0, je ne peux plus mettre à jour les objets imbriqués.Comment mettre à jour des objets imbriqués après la mise à jour de strong_parameters sur rails 3.2?

Voici la demande 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" 
} 

J'ai essayé cela et params params que. Je ne mets tout simplement pas à jour les objets imbriqués. S'il vous plaît aider

Au début, je pensais que params.require(:resource).permti(..., :images => []) devrait faire l'affaire, mais il a échoué, puis j'ai essayé diverses autres options. Ils ont tous échoué.

Comment puis-je autoriser tous ces objets imbriqués.

+0

pouvez-vous mettre votre code de modèle? C'est probablement un problème avec l'assignation de masse (attr_accessible) – rorra

+0

attr_accessible n'est pas un problème. En fait je ne l'utilise pas '' 'config.active_record.whitelist_attributes = false''' – graudeejs

Répondre

0

Avez-vous vérifié les journaux? La clé pour les attributs imbriqués sera images_attributes, et non images. C'est ce que vous devez transmettre dans la méthode permit() pour le faire fonctionner.

+0

J'ai essayé ça non plus. Ça ne marche pas. Apparemment, ce problème n'est pas résolu: https://github.com/rails/strong_parameters/pull/121#issuecomment-15469655 et d'autres numéros – graudeejs

Questions connexes