2009-03-26 5 views
1

Je suis en train de créer un lien pour détruire et l'entrée dans la base de données en utilisant AJAX, mais je veux aussi qu'il fonctionne sans activer JavascriptRails __gVirt_NP_NN_NNPS<__ dégradation des link_to_remote et url_for

Cependant le code suivant

<%=link_to_remote "Delete", :update => "section_phone", :url => {:controller => "phone_numbers", :action => "destroy", :id => phone_number_display.id }, :href => url_for(:controller => "phone_numbers", :action => "destroy", :id => phone_number_display.id)%> 

produit la sortie

<a href="#" onclick="new Ajax.Updater('section_phone', '/phone_numbers/destroy/1', {asynchronous:true, evalScripts:true, parameters:'authenticity_token=' + encodeURIComponent('b64efb643e49e9af5e2e195a90fd5a8b6b99ece2')}); return false;">Delete</a> 

pour une raison quelconque le url_for ne fonctionne pas correctement et la balise href est réglé sur #. Je ne sais pas pourquoi cela ne fonctionne pas puisque je ne suis pas informé des erreurs dans le journal

Est-ce que quelqu'un sait pourquoi cela pourrait être?

Merci

Répondre

2

vous manque accolades autour des options {} hachage, qui: mise à jour et: url appartiennent à, pour les séparer de le html_options {} hash auquel: href appartient.

Essayez ceci:

<%=link_to_remote "Delete", {:update => "section_phone", :url => {:controller => "phone_numbers", :action => "destroy", :id => phone_number_display.id }}, :href => url_for(:controller => "phone_numbers", :action => "destroy", :id => phone_number_display.id)%> 

Ça va obtenir l'URL pour apparaître comme l'attribut href de votre lien, mais une requête GET à votre action destroy ne devrait pas le supprimer. Vous aurez besoin d'autre chose (comme ce que propose vrish88) afin que vous puissiez faire une requête GET à l'action destroy pour obtenir un formulaire, puis POST ce formulaire pour supprimer réellement le numéro de téléphone.

1

je crois que vous cherchez quelque chose comme ceci: RailsCasts - Destroy Without JavaScript

+0

Pas exactement. Le problème n'est pas lié à la confirmation de js mais à la raison pour laquelle url_for ne fonctionne pas. – stellard

+0

En fait, il fonctionne correctement. Si vous jetez un oeil à http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html#M001613, vous verrez que votre lien est celui que link_to_remote produit. Donc, afin de le faire se dégrader correctement, jetez un oeil à la screencast. – vrish88

Questions connexes