Voici les étapes pour obtenir des ancres de travail en détournant leur comportement avec un style jQuery.
Dans la vue, permet de l'appeler index.html.erb
vous mettez un peu d'ancrage avec une carte d'identité spéciale ou une classe en utilisant l'aide link_to
normale - par exemple lien vers l'action show
du contrôleur des utilisateurs en utilisant le routage des ressources:
# in index.html.erb
<%= link_to 'First user', user_path(1), class => 'ajax_link' %>
<div id='some_container'>
to modify via javascript.
</div>
Deuxième étape - rendre le contrôleur capable de répondre en javascript:
# in users_controller.rb
def show
@user = User.find(params[:id])
respond_to do |wants|
wants.html
wants.js
end
end
prochain - créer le fichier js.erb correspondant, dans ce cas, il serait users/show.js.erb
et faire tout votre magie javascript ici.
# show.js.erb
alert('ajax answers!');
$('#some_container').html('hey this works great');
$('#some_container').after("<%= @user.name %>");
Veuillez noter que le code erb doit être placé entre guillemets.
Et maintenant, la dernière étape, pirater le lien avec jQuery dans votre fichier application.js
comme ceci:
# in application.js
$(document).ready(function() {
$(".ajax_link").live("click", function() {
$.getScript(this.href);
return false;
});
}
Il est assez simple: si votre document est complètement chargé, tous les noeuds avec la classe « ajax_link » sont piratés et sur un événement de clic getScript
obtient la réponse javascript de l'URL spécifiée dans l'attribut ancres href. A propos: cela fonctionnera aussi parfaitement comme lien normal si javascript est désactivé. Espère que cela vous aidera, si vous avez des questions, n'hésitez pas à demander! ;)
Merci pour votre aide. Cependant, je reçois toujours le même problème. Je vais poster mon code comme une réponse ci-dessous .. – ibuck