So erstellen und verwenden Sie Ihre eigene Klasse: Dieses Mal werde ich vorstellen, wie man es unter root / lib macht.
rails 6.0.3
application.rb
module Myapp
class Application < Rails::Application
config.load_defaults 6.0
config.paths.add 'lib', eager_load: true #Füge das hinzu
end
end
Fügen Sie unter lib zu autoload_paths hinzu. Klicken Sie hier für autoload_paths (https://qiita.com/hirokisoccer/items/4ba62a56b18eb834a8ee)
lib
├── assets
├── asks
└── utils
└── hoge.rb
Ich habe utils / hoge.rb erstellt. Geben wir ihm einen beschreibenden Namen.
hoge.rb
class Utils::Hoge
end
Oder
hoge.rb
module Utils
class Hoge
def greeting
'hello'
end
end
end
Definieren wir eine Klasse mit dem Namen des übergeordneten Verzeichnisses als Namespace. Auf diese Weise können Sie die Regeln von autoload_paths entführen und wie folgt aufrufen.
application_controller.rb
class ApplicationController < ActionController::Base
hoge = Utils::Hoge.new
hoge.greeting
#=> hello
end
Beim Schreiben dieses Artikels habe ich den folgenden Beitrag gefunden. (Der Mangel an Forschung wurde aufgedeckt ...)
Autoload_paths behoben, um Rätselfehler zu beseitigen
Laut Rails Guaid "Vor Rails 5 war es üblich, lib / und darunter in autoload_paths aufzunehmen. Jetzt wird jedoch nicht empfohlen, den Code an einem anderen Ort als dem App-Ordner abzulegen und für das automatische Laden zu verwenden." Es wird gesagt, dass ein Fehler auftreten kann, der für die Produktionsumgebung spezifisch ist.
Da die App standardmäßig in autoload_paths enthalten ist, Es scheint gut, das zu benutzen.
Warum existiert das lib-Verzeichnis? Ich frage mich, ob Leute, die gut in der Entwicklung sind, es richtig benutzen.
Das ist alles für diese Zeit, in der neue Fragen aufgetaucht sind. Jeden Tag gewidmet
Recommended Posts