5 votes

Rails - Fonction universelle globale

Je voudrais exposer une fonction globale à tous les aspects de mon projet Ruby on Rails (modèles, vues et contrôleurs). Au départ, je pensais que je pouvais simplement ajouter :

def self.my_function
    # Code here...
end

dans /config/application.rb et ensuite appeler :

Application::my_function

n'importe où dans mon application. Mais cela n'a pas fonctionné. J'ai donc fait quelques recherches sur Internet et il semble que je puisse exposer des fonctions globales :

  • Pour mes contrôleurs dans /app/controllers/application_controller.rb
  • Pour mes vues dans /app/helpers/application_helper.rb
  • Pour mes modèles dans /lib/

Mais pas pour tous en même temps.

Quelqu'un peut-il me dire si ce que je veux est possible ?

J'aimerais également éviter autant que possible d'inclure des instructions, car le système est censé être accessible de n'importe où. Mais à ce stade, même l'utilisation d'instructions include serait acceptable si je pouvais définir la logique de cette fonction à un endroit central.

10voto

kr1 Points 1775

Le définir dans config/environment.rb avant que l'application ne soit initialisée avec :

<YourApp>::Application.initialize!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X