Wenn ich auf Ruby on Rails bin, muss ich eine Methode namens hinzufügen
class String
def capitalize_first
# ...
end
end
und fragen Sie sich, wohin die Datei gehen soll? (Welches Verzeichnis und welcher Dateiname sowie welcher Initialisierungscode werden benötigt?) Dies gilt für ein Rails 3.0.6-Projekt.
ruby-on-rails
ruby
ruby-on-rails-3
Unpolarität
quelle
quelle
String
Klasse erweitern oder nur eine Hilfsmethode verwenden? Aber dann, wenn es ein Helfer ist, dann ist es auch mühsam, es in Controller (oder Modell) arbeiten zu lassen, und es kann nicht wie verkettet werdens.capitalize_first.truncate(30)
class Application < Rails::Application ... config.autoload_paths += Dir[File.join(Rails.root, "lib", "core_ext", "*.rb")].each {|l| require l } ...
lib/core_ext/string.rb
einfügen, vergessen Sie nicht, sierequire 'core_ext/string'
oben in die Datei aufzunehmen, in der Sie sie verwenden.lib
Das Verzeichnis sollte sich nicht imapp
Verzeichnis befinden.Sie können dies in config / initializers / string.rb tun
class String def capitalize_first # ... end end
sollte alles sein, was Sie brauchen (außer einem App-Neustart).
quelle
Die Richtlinien in Rails 3.1 sind der richtige Weg:
http://guides.rubyonrails.org/plugins.html#extending-core-classes
Wenn Sie die Standardkonvention befolgen, müssen Sie sich nicht mit einer Initialisierungskonfiguration herumschlagen.
quelle