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.
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.
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.
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
peut etre
require 'action_view/helpers/url_helper'
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.
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.
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 ?
dans environnment.rb j'ai bien un require sur ma classe.
et dans ma vue j'ai çà :
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part <%= Plop(@toto).to_html %>
#Crée le fichier /lib/plop.rb
#Rajoute dans config/environment.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
#Redemarre le serveur
Code : Sélectionner tout - Visualiser dans une fenêtre à part require 'plop'
#Pour utiliser methode1 et methode2 là où on en a besoin :
include Plop
?
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 %>
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager