Si vous ne voulez pas mettre les paramètres dans l'assistant de chemin - peut-être parce qu'il ya beaucoup d'entre eux ou vous ne les connaissez pas lorsque la page est générée - vous pouvez également les mettre dans l'attribut data-params
.
Par exemple:
link_to "Add to cart", cart_path,
data: { method: :post, remote: true, params: { product_id: 123 }.to_param }
Le code HTML généré ressemble à ceci:
<a data-params="product_id=123" data-remote="true" data-method="post"
href="/cart" rel="nofollow">Add to cart</a>
Le gestionnaire JQuery UJS attache tout de l'attribut data-params
au corps de la requête POST.
Conceptuellement il n'y a pas beaucoup de différence à l'aide de l'assistant de chemin en premier lieu, mais si vous souhaitez modifier les paramètres en Javascript cette solution pourrait donner un code plus élégant.
Grande réponse! Je cherchais quelque chose comme ça. Je savais que le magicien de Rails aurait quelque chose pour ça aussi. Où as tu trouvé ça ? – Jashwant
Il n'est pas documenté (au moins je n'en ai trouvé aucun) mais c'est dans le code. En outre, il est une déclaration simple, étonnamment, qui fournit cette fonctionnalité: https://github.com/rails/jquery-ujs/commit/dad6982dc592686677e6845e681233c40d2ead27 –
Ceci est une grande étoffe. Bon travail! pour trouver et partager. – Kocur4d