Une petite question qui paraitra surement très simple à certain:
J’ai une méthode “last_search_path” qui génère une url suivant une
cuisine personnelle. Cette cuisine ne peut pas être traduite en route
standard et incluse dans config/routes.rb
Mais j’aimerai quand même bien que cette méthode soit accessible depuis
les controller et depuis les vues, comme le sont les méthodes url_for()
et toutes les named_routes.
Si je la met dans application_controller, elle est accessible uniquement
depuis les controllers
Si je la met dans application_helper, elle est accessible uniquement
depuis les helpers.
Donc comment faire de la façon la moins tordue possible?
J’attends vos réponse, et je vous en remercie par avance.
Sébastien.
Le 10/03/10 11:06, Sébastien Lamy a écrit :
Si je la met dans application_controller, elle est accessible uniquement
depuis les controllers
Si je la met dans application_helper, elle est accessible uniquement
depuis les helpers.
Donc comment faire de la façon la moins tordue possible?
Si tu en as besoin dans tous les controllers tu peux juste inclure le
helper dont tu as besoin dans ton ApplicationController, sinon tu
l’inclus dans les controllers concernés.
–
Martin C. || fuse
http://www.noremember.org
La plus simple selon moi c’est de l’ajouter aux contrôleurs et d’en
faire
une helper_method comme ça elle sera aussi accessible depuis les helpers
et
les vues.
Voici comment (dans ton contrôleur) :
helper_method :last_search_path
Sinon bien entendu tu peux soit la donner directement au
ApplicationController dont tous les contrôleurs héritent, soit la mettre
dans un module que tes contrôleurs incluent (par exemple à travers un
include dans ton ApplicationController comme ça tout le monde y a droit
mais
c’est quand même bien rangé dans son module).
En espérant que t’aide à avancer.
Michel B.
2010/3/10 Martin C. [email protected]
Merci pour vos réactions rapides. J’ai opté pour la méthode de michel,
en déclarant
helper_method :last_search_path
dans ApplicationController. Et en définissant last_search_path dans ce
même controller(j’en ai besoin partout dans l’appli).
Sébastien.
Michel B. a écrit :