2010-12-13 7 views
0

Ich möchte my_method zum Symbol Klasse hinzuzufügen, und in der Lage sein my_method von app/helpers/application_helper.rb zu nennen:Wo ist der richtige Ort, um vordefinierte Klassen (z. B. String, Symbol) -Erweiterungen in Ruby on Rails zu platzieren?

module ApplicationHelper 
    def my_helper 
    my_symbol.my_method 
    end 
end 

Wo ist die am besten geeignete Stelle setzen:

class Symbol 
    def my_method 
    <some code here> 
    end 
end 

?

+0

Ich stellte eine ähnliche Frage, die ein paar mehr detaillierte Antworten hier erhalten: http://stackoverflow.com/questions/3945124/how-can-i-use-mixins-or-modules-in-my-controllers-in -rails-3 – jergason

Antwort

2

Ich denke, dass Sie Ihre nativen Klassenerweiterungen in einer neuen Datei in Ihrem lib Ordner und require -sing sie in Ihrer environment.rb Datei sollten es tun.

+0

Danke Jacob! Dies macht den Trick. –

0

Ich erstelle normalerweise eine Datei mit dem Namen monkey_patches.rb (oder ähnlich) - also ist es sehr offensichtlich, wo die Patches sind - dann laden Sie es mit einem Initialisierer in Config/Initialisierer. Dafür sind sie da!

+0

Hallo Cory! Wo würdest du die Datei "monkey_patches.rb" ablegen? Willst du eine neue Datei in 'config/initializers' erstellen und drin 'require' monkey_patches' eingeben? –

+0

Ich würde monkey_patches.rb in lib setzen und explizit in einer init ... – Cory

Verwandte Themen