2010-12-13 25 views
0

Je voudrais ajouter my_method à la classe Symbol, et être en mesure d'appeler my_method de app/helpers/application_helper.rb:Où est le bon endroit pour mettre des extensions de classe prédéfinies (par exemple, Chaîne, Symbole) dans Ruby on Rails?

module ApplicationHelper 
    def my_helper 
    my_symbol.my_method 
    end 
end 

Où est l'endroit le plus approprié pour mettre:

class Symbol 
    def my_method 
    <some code here> 
    end 
end 

?

+0

J'ai posé une question similaire qui a obtenu quelques réponses plus détaillées ici: http://stackoverflow.com/questions/3945124/how-can-i-use-mixins-or-modules-in-my-controllers-in -rails-3 – jergason

Répondre

2

Je pense que coller vos extensions de classe natives dans un nouveau fichier dans votre dossier lib et require en les incluant dans votre fichier environment.rb devrait le faire.

+0

Merci Jacob! Cela fait l'affaire. –

0

Je crée généralement un fichier nommé monkey_patches.rb (ou similaire) - donc il est très évident que les correctifs sont - puis le charger avec un initialiseur dans config/initialiseurs. C'est ce qu'ils sont pour!

+0

Salut Cory! Où mettriez-vous le fichier 'monkey_patches.rb'? Voulez-vous créer un nouveau fichier dans 'config/initializers' et y mettre' require 'monkey_patches''? –

+0

Je mettrais monkey_patches.rb en lib et le demanderais explicitement dans un init ... – Cory