5

Vorrei esporre una funzione globale a tutti gli aspetti del mio progetto Ruby on Rails (modelli, viste e controller). Inizialmente, ho pensato che avrei potuto solo aggiungere:Rails - Universal Global Function

def self.my_function 
    # Code here... 
end 

a /config/application.rb e poi basta chiamare:

Application::my_function 

ovunque nella mia applicazione. Ma quello non ha funzionato. Così ho fatto un po 'googling e sembra che io possa esporre le funzioni globali:

  • Per i miei controller in /app/controllers/application_controller.rb
  • Per le mie opinioni in /app/helpers/application_helper.rb
  • Per i miei modelli in/lib/

Ma non per tutti in una volta.

Qualcuno può dirmi se ciò che voglio è possibile?

Vorrei anche evitare le dichiarazioni di inclusione il più possibile, poiché si suppone che sia accessibile da qualsiasi luogo. Ma a questo punto, anche usando le istruzioni include sarebbe OK se posso definire la logica per questa funzione in una posizione centrale.

risposta

10

definirlo in config/environment.rb, prima che l'applicazione venga inizializzato con:

<YourApp>::Application.initialize! 
+0

Grazie! Questa era la soluzione! Dritto e semplice! – BlazeCell