Rails à distance de suppression et de mise à jour de la vue via Ajax
Dans le passé, chaque fois que je voulais mettre à jour une partie de mon point de vue par le biais de l'Ajax, j'ai effectué les opérations suivantes:
- créer un partiel de la partie je veux mettre à jour et de lui donner un ID unique, dire
#tracks
- créer une action spéciale dans le contrôleur pour que l'appel Ajax, dire
remove_track
que les mises à jour de toutes les valeurs, etc. et d'ajouterformat.js
- créer un nouveau fichier JS avec le même nom que l'action de sorte Rails appelle automatiquement
remove_track.js.erb
qui contient quelque chose comme:$('#tracks').html("<%=j render 'cds/show_tracks' %>");
- ensemble
remote: true
dans le lien qui appelle cette action.
Tout cela est très bien, mais maintenant, je suis en train d'essayer de supprimer et mettre à jour une commune index
vue à l'aide de l'ordinaire destroy
méthode pour la flexibilité, le sens, je peux appeler cette méthode soit par le biais de l'Ajax ou normalement. J'ai pensé que c'est une chose commune à faire qu'il y a à être une meilleure façon que tous les ci-dessus.
Je peux obtenir le détruire méthode à appeler mon destroy.js.erb
fichier en mettant simplement dans le contrôleur:
format.js { layout: false }
et bien sûr réglage remote: true
sur le lien.
ce que je ne peut pas faire est d'obtenir le point de vue de l'actualisation. Le tableau que je veux actualisation est enfermé dans un div avec un ID unique, mais comme ce n'est pas une partielle, il refuse d'en actualiser le contenu. Peut-être que je suis absent quelque chose.
Suis-je condamnée à avoir pour créer une partielle et l'actualiser avec la méthode ci-dessus, ou est-il de plus magique façon de faire (autre que l'aide Turbolinks)?
Grâce.
PS
Aussi, je viens de remarquer que cela a l'inconvénient de faire que je ne peux pas passer le reste des paramètres de la méthode destroy, car il ne passe l'ID de l'objet à détruire à l'aide de l'ordinaire CRUD routes. Si j'essaie d'utiliser platform(action: destroy)
ou platform(method: delete)
j'obtiens une erreur:
No route matches {:action=>"destroy", :controller=>"platforms"}
Ce qui signifie que je crée un nouvel itinéraire si je veux passer ces paramètres...
Encore un autre inconvénient, c'est que je suis repeading de la logique de recherche et de tri que j'ai dans la méthode de l'indice de nouveau dans la méthode destroy. Je suis certain que c'est certainement pas la façon de le faire.
OriginalL'auteur kakubei | 2013-07-18
Vous devez vous connecter pour publier un commentaire.
Grâce à cette page:
http://carmennorahgraydean.blogspot.com.es/2012/10/rails-328-ajax-super-basic-example.html
J'ai trouvé la bonne façon de le faire. Tellement simple et tellement efficace.
Espère que cela aide quelqu'un d'autre.
OriginalL'auteur kakubei