IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ruby on Rails Discussion :

Installation de plugin auto_complete_jquery


Sujet :

Ruby on Rails

  1. #1
    Membre averti Avatar de Javix
    Inscrit en
    Juin 2007
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 531
    Points : 353
    Points
    353
    Par défaut Installation de plugin auto_complete_jquery
    Est-ce quelqu'un a déjà utilisé ce plugin (voir la description ici?C'est pas très claire; Qu'est-ce qu'il faut faire pour pouvoir l'utiliser? Voici ce que j'ai fait:

    - télécharger d'abord le plugin-même d'ici
    - telecharger la dernière version de jQuery (ici)
    - telecharger le plugin auto_complete de jQuery (ici)
    - [option] télecharger jrails pour ne pas avoir de conflits avec Prototype/script.aculo.us et utiliser jQuery.
    - copier-coller le fichier jquery.autocomplete.js dans public/javascripts
    - copier-coller le fichier 'jquery.autocomplete.css' dans public/stylsheets
    - ajouter le stylesheet et javascripts dans le layout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     <%= stylesheet_link_tag 'scaffold', 'jquery.autocomplete' %>
      <%= javascript_include_tag :defaults, :cache => 'jquery' %>
    J'ai 2 modèles pour le tester avec un cas classique: Product et Category liés comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    product.rb
    belongs_to :category, 
     
    category.rb
    has_many:products
    Donc je voudrais faire de l'auto_complete de coté 'belongs_to' et pouvoir taper dans le textfield le nom de la Category et sauvegarder son ID (category_id).
    Dans ProductsController j'ai ajouté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    auto_complete_for :category, :name
    Et dans routes.rb (au cas où puisque c'est indiqué nul part, ni dans leur README ni sur le blog de l'auteur):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    map.auto_complete ':controller/:action',
        :requirements => { :action => /auto_complete_for_\S+/ },
        :conditions => { :method => :get }
    En enfin dans la page views/products/new:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <script type="text/javascript">
      $(document).ready(function() {
        $("input#product_category").autocomplete("auto_complete_for_category_name")
      });
    </script>
    <h1>New product</h1>
     
    <% form_for(@product) do |f| %>
      <%= f.error_messages %>
     
      <p>
        <%= f.label :name %><br />
        <%= f.text_field :name %>
      </p>
      <p>
        <%= f.label :category %><br />
        <%= f.text_field :category, :autocomplete =>"off" %>
      </p>
      <p>
        <%= f.submit "Create" %>
      </p>
    <% end %>
     
    <%= link_to 'Back', products_path %>
    LE PROBLÈME - c'est que rien ne se passe quand je commence à saisir une Catégorie (j'en ai créé quelques unes auparavant).Pas d'erreurs dans la console Tout d'abord je n'ai pas très bien compris s'il faut télécharger le plugin de Dylan Verheul's jquery autocomplete et comment l'installer, - juste copier le contenu de script qui figure sur la page et le coller dans le fichier 'jquery.autocomplete' ou non? Quelqu'un a déjà su faire tout ça?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 127
    Points : 124
    Points
    124
    Par défaut
    Si rien ne se passe, il s'agit probablement d'une erreur Javascript.
    Je te conseille d'installer Firefox et le plugin Firebug pour obtenir plus d'infos.
    Mon blog sur Ruby on Rails : 2dconcept

  3. #3
    Membre averti Avatar de Javix
    Inscrit en
    Juin 2007
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 531
    Points : 353
    Points
    353
    Par défaut
    Ca a été fait depuis très longue temps

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 127
    Points : 124
    Points
    124
    Par défaut
    Et tu n'as aucun message d'erreur?
    Mon blog sur Ruby on Rails : 2dconcept

  5. #5
    Membre averti Avatar de Javix
    Inscrit en
    Juin 2007
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 531
    Points : 353
    Points
    353
    Par défaut
    J'avoue que je suis loin d'être un 'pro' en JavaScript. Dont je ne sais vraiment pas ce que je dois vérifier avec Firebug pour voir des erreurs éventuelles. En plus, je ne trouve pas d'exemples réels sur l'utilisation de ce plugin, même sur le blog de son auteur

  6. #6
    Membre averti Avatar de Javix
    Inscrit en
    Juin 2007
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 531
    Points : 353
    Points
    353
    Par défaut
    J'ai décide d'y revenir quand même.
    Donc j'ai vérifié la console de Javascript en utilisant Firebug et console de Netbeans. Dès que commense à taper quelque chose dans le textfield en question, une query est générée (j'ai tapé "cam"):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Processing PostsController#show (for 127.0.0.1 at 2009-05-15 12:19:32) [GET]
    Processing PostsController#show (for 127.0.0.1 at 2009-05-15 12:19:32) [GET]
    [4;36;1mPost Columns (0.0ms) [0m   [0;1mSHOW FIELDS FROM `posts`[0m
    [4;35;1mPost Load (0.0ms) [0m   [0mSELECT * FROM `posts` WHERE (`posts`.`id` = 0) [0m
    ActiveRecord::RecordNotFound (Couldn't find Post with ID=auto_complete_for_user_lastname):
      app/controllers/posts_controller.rb:17:in `show'
    Et là je ne comprends pas pourquoi il cherche par ID=auto_complete_for_user_lastname???
    Pourquoi il cherche Post au lieu de User.lastname?
    J'ai 2 modèles: User et Post. User has_many :posts et Post belongs_to :user
    Donc je voudrais au moment de création d'un Post taper dans un textfield le nom de User et voir apparaître les noms qui correspondent a ce qui est tapé dans le textfield. Puis passer l'ID de User et sauvegarder le Post.
    Voici comment je l'ai défini dans PostsController:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    auto_complete_for :user, :lastname
    Dans la page posts/new:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <script type="text/javascript">
      $(document).ready(function(){
        $("input#user_lastname").autocomplete("auto_complete_for_user_lastname")
      });
    </script>
     
    <h1>New post</h1>
     
    <% form_for(@post) do |f| %>
      <%= f.error_messages %>
     
      <p>
        <%= f.label :title %><br />
        <%= f.text_field :title %>
      </p>
      <p>
        <%= f.label :content %><br />
        <%= f.text_area :content %>
      </p>
      <p>
        <%= f.label :user %><br />
        <%=text_field :user, :lastname%>
      </p>
      <p>
        <%= f.submit 'Create' %>
      </p>
    <% end %>
     
    <%= link_to 'Back', posts_path %>
    Dans routes.rb:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     map.auto_complete ':controller/:action',
        :requirements => { :action => /auto_complete_for_\S+/ },
        :conditions => { :method => :get }
    Je sais qu'il existe le plugin 'model_auto__complete' qui fait la même chose. Je voudrais juste trouver pourquoi celui-ci ne fonctionne pas.
    Ce qui est vraiment chiant, c'est que le fichier README de plugin ne correspond plus à la réalité et contredit aux commentaires dans le fichier 'auto_complete_jquery.rb du plugin. C'est vraiment difficile à trouver ce qu'il faut mettre dans la vue

Discussions similaires

  1. [Plugin][VE]Comment installer un plugin ?
    Par Smalljim dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 15/02/2006, 19h38
  2. Eclipse + Tomcat: probleme d'install du plugin sysdeo
    Par cladsam dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 01/02/2006, 15h28
  3. [Plugin]installer des plugins
    Par narkhor dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 15/12/2005, 15h30
  4. [débutant!] Comment on installe un plugin?
    Par cyril.ppn dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 21/04/2005, 08h37
  5. [Plugin][Tomcat]impossible d'installer le plugin tomcat
    Par LSL dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 06/04/2005, 09h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo