5

Chciałbym przedstawić globalną funkcję dla wszystkich aspektów mojego projektu Ruby on Rails (modele, widoki i kontrolery). Początkowo myślałem, że mogę tylko dodać:Szyny - uniwersalna funkcja globalna

def self.my_function 
    # Code here... 
end 

do /config/application.rb a potem po prostu zadzwonić:

Application::my_function 

gdziekolwiek w mojej aplikacji. Ale to nie zadziałało. Więc zrobiłem trochę googling i wydaje się, że mogę narazić globalne funkcje:

  • dla moich kontrolerami w /app/controllers/application_controller.rb
  • dla moich poglądów w /app/helpers/application_helper.rb
  • Dla moich modeli w/lib/

Ale nie dla wszystkich naraz.

Czy ktoś może mi powiedzieć, czy to, czego chcę, jest możliwe?

Chciałbym również unikać wszelkich instrukcji dołączania, o ile to możliwe, ponieważ jest to idealna opcja dostępna z dowolnego miejsca. Ale w tym momencie nawet użycie instrukcji include byłoby OK, gdybym mógł zdefiniować logikę dla tej funkcji w jednej centralnej lokalizacji.

Odpowiedz

10

zdefiniować go w config/environment.rb, zanim aplikacja zostanie zainicjowany z:

<YourApp>::Application.initialize! 
+0

Dzięki! To było rozwiązanie! Prosto i prosto! – BlazeCell