2010-08-13 5 views
1

Je voudrais savoir où mettre le code de patch singe comme suit dans l'application de mes rails qui ouvrirait les classes existantes et ajouterait ou remplacerait les nouvelles fonctionnalités. Je veux que ce code soit disponible pour toutes les instances dès que possible. Autoload est-il la bonne façon de le faire et de mettre l'appel dans environment.rb?Où mettre des extensions d'objet ruby ​​

class Class 
    def attr_initializer(*attributes) 
    attr_reader *attributes 
    class_eval <<-RUBY 
     def initialize(#{attributes.join(', ')}) 
     #{attributes.map{ |attribute| "@#{attribute}" }.join(', ')} = #{attributes.join(', ')} 
     end 
    RUBY 
    end 
end 

Répondre

2

Si vous utilisez des rails 2.3.x alors la place standard pour mettre ceux-ci est dans un fichier dans le répertoire config/initializers. Rails chargera ces fichiers au début du processus de démarrage.

+0

Merci, qu'en est-il des tests, dois-je ajouter du code dans test_helper pour initialiser ce code? – dagda1

+0

Ces initialiseurs seront exécutés lors du chargement de la suite de tests. Les fichiers dans config/initialiers sont exécutés pour tous les environnements –

Questions connexes