J'ai une fonction jQuery appelée après un doubleclick sur un élément de la liste.
Suivant à l'application de nouveaux formats audit article mon objectif principal est de Faites une entrée de base de données à partir de mon comme contrôleur code>. Dans ce railsCast L'index code> code> Action de leur
Commentaires code> Controller est appelé avec cette ligne simple. P>
class LikesController < ApplicationController
protect_from_forgery
def index
Like.create(:user_id => current_user.id, :item_id => params[:id])
end
end
5 Réponses :
Vous pouvez définir une action dans le contrôleur comme celui-ci: et vous pouvez appeler action comme Les fichiers JavaScript doivent être dans le dossier / goûts / créelike code>.
Dans le dossier path_to_app / app / vues / goûts code> Créer un fichier
créatifike.html.erb code> - il y a un
CreatELLIKIKIKIKE P >
/ path_to_app / public / javascripts code>
Et meilleure façon d'inclure le fichier JavaScript est un Javascript_include_tag comme: p > <%= javascript_include_tag "tile/tile.js" %>
Je pense que le problème d'exécution peut être résolu en déplaçant index.js.erb de p>
à p>
C'est ici que les rails recherchent des modèles de rendu (votre script ne doit pas être servi par le pipeline d'actif). Les rails s'attaquent à ceci via Convention - votre application achemine automatiquement / aime à l'action de l'index. p>
Si vous souhaitez un itinéraire plus informatif, utilisez le Guide de routage Rails pour générer un nouvel itinéraire et faire la correspondre à l'action Create_likes dans le contrôleur de goûts. Puis,
$ .Getscript ("/ create_likes.js")
saura où regarder p>
Merci Allot, cela a travaillé pour moi! :) Après avoir changé le chemin du fichier JS, je devais ajouter ressources: aime code> à mes itinéraires afin qu'il correspond à
get / gove code> avec l'index
code> action.
Le comportement que vous voulez est différent de ce que ce rails spécifique s'adresse. Il est spécifiquement ciblé sur la récupération de nouveaux commentaires tels qu'ils sont créés, sans rafraîchir la page. C'est pourquoi vous rencontrez des problèmes suivant ce guide.
Tout d'abord, vous devez vous assurer que vous avez un pour la pièce du contrôleur, vous devrez ajouter une action "Créer" à votre contrôleur. En supposant que votre modèle de film Vous devrez également changer votre code javascript pour faire un message au lieu d'une demande d'obtention. C'est parce que la méthode HTTP est la différence sur les rails entre une demande de création et une demande d'index, car ils utilisent tous deux le même chemin d'URL (par exemple. /Comments.js). Vous aurez également besoin d'avoir l'URL refléter que c'est une ressource imbriquée dans un film. Voici une version modifiée de votre code JS avec ce changement: p> en ce qui concerne votre fichier .js.erb, comme indiqué par d'autres, il doit être placé dans votre Ceci n'est qu'une stratégie, mais il existe de nombreuses autres façons de gérer l'interaction JS avec des rails. Si vous souhaitez un exemple d'utilisation d'un fichier js.erb (js.coffee dans ce cas) Voir le fichier, vous pouvez consulter ce implémentation . Dans ce cas, tout ce qui gère l'événement de clic est un lien_to avec la télécommande: option vraie qui vous déléguette l'adaptateur JQuery-UJS. P> espère que cela aide! P> P> ressources: aime code> dans votre config / routes.rb. À partir de votre extrait de code, on dirait que vous associez un film comme avec un film, assurez-vous de rendre l'itinéraire imbriquée dans votre
Ressources: Films CODE> Appel. À la fin, vos itinéraires doivent ressembler à quelque chose comme ceci: p>
has_many: aime code> Il s'agit d'une version simple de votre action à ressembler: p>
App / Vues CODE> Dossier. Cependant, en raison de votre JS régulier qui manipule la logique, vous n'avez pas besoin de tout avoir tout. P>
Ceci pourrait ne pas être proche de votre réponse, mais j'utilise ... espérons que cela aide. p> p> $. Gauxcript () code> Pour charger ces fichiers
JS / CSS CODE> que j'ai besoin une fois que ma page a rendu, qui Au courant, améliore les performances et réduit la charge de la page. C'est le code que j'ai utilisé dans mon
erb code> files.my shop_for_free_module.js réside dans
app / public / javascripts code> < Pré> xxx pré>
Essayez ceci sur
Question: Mon premier problème avec la compréhension du code d'exemple de Railscasts est la manière dont ils définissent l'action. Si je voulais appeler l'action CreatELIKIKIKIKIKIKIKIKIKIKIKIKE de My Likes_Controller, comment l'appellerais-je? P>
Réponse: P>
$(document).ready(function() { $('#list > li').dblclick(function(){ // styling $(this).toggleClass('liked'); // pass ID to controller var item_id = $(this).attr("data-id"); $.getScript("/create_like.js?item_id=" + item_id); }); });
@THECHAMP a mis à jour ma réponse, corrigé un bogue de code dans la méthode des obtint appelant, au lieu de likes.js Create_Like.js doit être appelé.
Je ne sais pas ce que vous demandez ... Voulez-vous utiliser des appels AJAX afin d'envoyer des informations \ Recevoir du serveur?
Je ne pourrai pas essayer toutes vos grandes suggestions jusqu'au jeudi ... Merci déjà pour l'aide !!