Je l'ai vu de nombreux exemples d'utilisation accepts_nested_attributes_for mais seulement certains d'entre eux pour JSON POST/PUT et aucun d'eux m'a aidé:/accepts_nested_attributes_for cinque JSON PUT (mise à jour)
Ma demande sera utilisée pour créer des formulaires. Donc, une forme a plusieurs form_rows et un form_row peut avoir beaucoup de choix (dans le cas où il s'agit d'une sélection de radio)
Donc, j'ai mon modèle de formulaire comme ceci:
class Form < ActiveRecord::Base
attr_accessible :name
has_many :form_rows
accepts_nested_attributes_for :form_rows
end
et mon contrôleur ressemble à ceci:
def update
@form = Form.find(params[:id])
@form.update_attributes!(params[:form])
end
Voici le JSON que je suis en train d'envoyer
{
"name": "form test 4",
"form_rows_attributes": [
{
"domtype": "Input",
"label": "Super row new"
}
]
}
Dans mon scénario, la création de formulaire ne prend qu'un nom, c'est après cela que l'utilisateur ajoute les form_rows. Quand je fais cela, le nom est correctement mis à jour mais les form_rows ne sont pas du tout créés. Il n'y a pas d'erreur dans ma console, juste la mise à jour pour le formulaire.
Qu'est-ce que je fais mal?
J'ai essayé cela, mais seul le nom est mis à jour. Les form_rows ne sont pas ajoutés:/ – Olivier
Oups désolé, ça marche, je le faisais mal. Cependant, j'ai toujours un problème. Mon form_row peut avoir beaucoup de choix mais un JSON comme ça { "forme": { "name": "forme test 4", "form_rows_attributes": [ { "domtype": "Input", "label" : "ligne super nouvelle", "choix": [ { "name": "choix 1", "valeur": "value1" } ] } ] } } ne fonctionne pas:/J'ai une erreur: ActiveModel :: MassAssignmentSecurity :: Erreur dans FormsController # mise à jour Impossible d'affecter en masse un attribut protégé es: choices – Olivier
@Tagazok avez-vous quelque chose comme 'attr_accessible: choices' dans le modèle' FormRow'? Vous aurez également besoin de 'accepts_nested_attributes_for: choices' dans votre modèle' FormRow'. – patrickmcgraw