Closed svergeylen closed 6 years ago
Tu perds l'ensemble parce que tu n'as pas permit
cet attribut dans le controleur:
Du coup, item_params
appelé dans update filtre les éléments dans params
, qui est ensuite ré-utilisé par le render edit
→ il n'y sont plus.
Tu le dis toi-même, Rails te renvoie unpermitted parameters https://github.com/svergeylen/collector/blob/6c4f6d27b9117f25c054c74930db8cbd82de5b1b/app/models/item.rb#L33
Dans app/controllers/items_controller.rb > item_params, ajoute les tags:
def item_params
params.require(:item).permit(:number, :name, :description, :attachments; tag_attributes: [:id, :name, etc])
end
Si tu as une erreur de syntaxe, il est possible que tu doives mettre {tag_attributes: [:id, :name, etc]}
ok, c'est l'info que je cherchais... mais j'ai jamais trouvé la doc sur ce concept pour pouvoir le maitriser... (il faillait y penser que c'était _attributes suivi d'un array de sous attributs ! ;-) ) ;-) merci
C'est vrai que c'est un peu caché dans la doc, c'est parce qu'ils en ont beaucoup parlé lors de la sortie de Rails 4.2 qui introduisait la feature :wink:
Content que ça marche
N.B : Ça marche aussi en nested:
params.require(:item).permit(post_attributes[:title, comments_attributes: [:content]])
Bien pratique quand tu as des accepts_nested_attributes_for
en cascade!
non, marche po :-(
Unpermitted parameter: :tag_ids
je n'essaie pas de modifier un tag via un item, pourtant, j'essaie simplement d'associer un tag à un item... le truc qui marchait depuis toujours mais, là, plus rien... étonnant. je vais comparer avec le source d'avant...
En console, ceci fonctionne : i.tag_ids = [1] mais pas dans l'application...
Ah, dans ce cas la syntaxe est plutôt:
params.require(:item).permit(:number, :name, :description, :attachments, tag_ids: [])
EDIT: Il est possible que tu doives ajouter des accolades comme ceci:
params.require(:item).permit(:number, :name, :description, :attachments, {tag_ids: []})
oui ! le premier semble fonctionner :-) dur dur la syntaxe ;-) (pq des crochets d'array [] après le nom ? Moi, j'avais essayé plein de fois sans les crochets ) enfin soit... ;-)
A priori closed, merci ! :-) mais je garde le ticket ouvert jusqu'à ce que j'ai tout testé :-)
pq des crochets d'array [] après le nom ?
Parce que c'est une association multiple et nom un champ de l'objet :wink:
Coucou, L'association de parent_tags me semble un peu hasardeuse... pourrais-tu vérifier que tout fonctionne bien ?
Tout cela fait un peu désordre et tu pourrais surement me donner quelques conseils pour que je gagne un peu de temps avec ces brols, vu que tu aimes bien les associations et que tu en fais plus souvent que moi (éventuellement checker les nested attributes etc que je n'ai pas encore exploité) ;-)
Idéalement, relire le modèle tag et item ne serait pas du luxe pour qu'ils soient finalisés ;-)
Merci