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 :

Utiliser les méthodes ror dans une class perso


Sujet :

Ruby on Rails

  1. #1
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut Utiliser les méthodes ror dans une class perso
    Bonjour,

    j'ai du coder une petite class Ruby que j'ai mis dans le dossier /lib/ de mon projet ror, mais j'aimerais savoir ce qu'il faut que je fasse pour pouvoir utiliser la méthode 'link_to' de UrlHelper ?


    Merci.

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    171
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 171
    Points : 218
    Points
    218
    Par défaut
    Bonjour,

    Que souhaites-tu faire exactement ?
    - Utiliser link_to directement dans ton objet
    - Ou bien utiliser link_to dans tes vues mais sur ton objet.

  3. #3
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    salut,

    j'ai une classe X, qui définie une méthode toto, cette méthode doit retourner ce que retourne en temps normale link_to, c'est juste pour avoir un lien sur une action générique d'un contrôleur (pas de paramètres).

    Cette classe fait d'autres choses, et elle est utilisée en direct dans une vue.

    J'ai tout essayé ce qu'il y a là : http://stackoverflow.com/questions/1...-method-linkto sans succès

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    peut etre
    require 'action_view/helpers/url_helper'

  5. #5
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    Citation Envoyé par Zfred Voir le message
    peut etre
    require 'action_view/helpers/url_helper'
    çà passe pas, j'arrive pas à lancer mongrel avec çà :

    /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:440:in `load_missing_constant': uninitialized constant ActionView::Helpers::UrlHelper (NameError)

  6. #6
    Membre actif

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    171
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 171
    Points : 218
    Points
    218
    Par défaut
    Je pense que le problème vient du fait que ta class n'est pas dans un contexte de requete. Or, link_to à besoin de connaitre les routes définies, la requete courante...

    Ce serait plutôt à l'ActionView d'inclure ton module pour que tu puis avoir acces à ses méthodes dans ta vue. Tout comme actuellement c'est ActionView qui inclus UrlHelper.

  7. #7
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    Donc globalement çà semble pas possible ?

    Il faudrait donc je rajoute une méthode pour envoyer dans ma classe ce que retourne link_to à partir de la vue ?

    Bon j'essayerais.

  8. #8
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    Montre nous stp les 1ere lignes du fichier que tu as écrit.
    (pas le contenu de ta class)
    Tu fais un héritage ?
    Est ce que tu 'require ton_fichier' dans environment.rb ?

  9. #9
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    dans environnment.rb j'ai bien un require sur ma classe.

    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
     
    class Plop
      attr_accessor :text
     
      def categ_link
        link_to "Profiles", :controller => "profiles"
      end
     
      def to_html
        .... plein de truc ....
        categ_link
      end
     
      def initialize(text)
        @text = text.to_s
      end
    end
    et dans ma vue j'ai çà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%= Plop(@toto).to_html %>

  10. #10
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    #Crée le fichier /lib/plop.rb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    module Plop
    def methode1
    end
    def methode2
    end
    end
    #Rajoute dans config/environment.rb
    #Redemarre le serveur

    #Pour utiliser methode1 et methode2 là où on en a besoin :
    include Plop

  11. #11
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    ?

    je suis encore débutant en ruby, mais je comprend pas bien le but de passer par un module pour 2 méthodes ?

    ma classe dans plop.rb contient plus de chose que 2 méthodes, et c'est depuis cette classe que je veux appeler link_to.


    Mais bon en attendant j'ai rajouter un accesseur sur un membre categ, ma méthode categ_link retourne le contenu du membre categ, et j'utilise le tout dans ma vue comme çà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <%
       r = Plop(@toto)
       r.categ = link_to .........
    %>
    <%= r.to_html %>

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/03/2015, 20h59
  2. méthode add dans une classe héritant de ArrayList
    Par sliderman dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 05/06/2007, 09h27
  3. Réponses: 5
    Dernier message: 05/10/2006, 10h18
  4. [debutant] Utilisation de l'operateur = dans une classe
    Par Battosaiii dans le forum Débuter
    Réponses: 8
    Dernier message: 10/11/2005, 23h01

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