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:

  1. créer un partiel de la partie je veux mettre à jour et de lui donner un ID unique, dire #tracks
  2. 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'ajouter format.js
  3. 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' %>");
  4. 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