2013-02-15 9 views
1

Dans une application Rails 3.2, j'ai un formulaire qui est soumis via Ajax, avec des commentaires fournis à l'utilisateur via des messages flash.Comment afficher les messages flash d'une soumission de formulaire ajax?

Il y a deux (ou plus?) Façons d'aborder cela.

je puisse définir format js dans le contrôleur, puis recharger le message flash partielle

#template.js.erb 
`$(".flash-container").html("<%= escape_javascript(render partial: 'shared/flash_messages') %>");` 

Or je peux rendre le code HTML de flash à partir d'une fonction de jquery (par exemple this).

Ma question est, y at-il des avantages ou des inconvénients à l'une ou l'autre approche?

Je comprends comment fonctionne la fonction jquery, mais je ne comprends pas (encore) complètement ce qui se passe dans les internes de Rails en utilisant l'approche js. Y a-t-il un impact sur les performances avec l'un sur l'autre?

Une approche est-elle considérée plus «Railsy» que l'autre? Je veux apprendre comment les autres vont aborder cela, et quelle est l'approche préférée.

+0

Avez-vous la première méthode de travail? –

Répondre

0

dans votre contrôleur créer

respond_to do |format| 
    format.js { render 'your_js_file' } 
end 

et comme sage ce que vous avez dans votre js.erb rendre est la meilleure façon de faire ce que vous faites.

1: C'est le moyen le plus courant et d'autres personnes qui lisent votre code vont mieux comprendre ce qui se passe. Je l'ai vu faire de cette façon quelques fois par beaucoup de gens, de sorte que je comprends comment cela fonctionne. "KISS"

2: Quant à la seconde méthode que vous avez montrée, elle est agréable à regarder, mais comme vous ne comprenez pas encore et ressentez le besoin de la déboguer pour vous parler de sa capacité de lecture qui devrait tenir beaucoup de poids à quel point le code a l'air cool. Pensez à cette façon si vous devez déboguer ainsi quelqu'un d'autre qui lit votre code aussi.

Quelquefois la meilleure façon, c'est la façon dont vous savez comment.

+0

merci le gâteau numérique. J'ai la première méthode de travail. La seconde je n'ai pas vraiment besoin de déboguer, plus de modifier pour s'adapter à mon application. Ce que je me demande est, y a-t-il par exemple. considérations de performance ou d'autres avantages/inconvénients de l'une ou l'autre approche, ou font-ils essentiellement la même chose de différentes manières? Bon point sur KISS et faire les choses de façon "rails" –

Questions connexes