Comment créer et utiliser votre propre classe, Cette fois, je vais vous présenter comment le créer sous root / lib.
rails 6.0.3
application.rb
module Myapp
class Application < Rails::Application
config.load_defaults 6.0
config.paths.add 'lib', eager_load: true #Ajoute ça
end
end
Ajoutez sous lib à autoload_paths. Cliquez ici pour les autoload_paths (https://qiita.com/hirokisoccer/items/4ba62a56b18eb834a8ee)
lib
├── assets
├── asks
└── utils
└── hoge.rb
J'ai créé utils / hoge.rb. Donnons-lui un nom descriptif.
hoge.rb
class Utils::Hoge
end
Ou
hoge.rb
module Utils
class Hoge
def greeting
'hello'
end
end
end
Définissons une classe avec le nom du répertoire parent comme espace de noms. En faisant cela, vous pouvez détourner les règles de autoload_paths et l'appeler comme suit.
application_controller.rb
class ApplicationController < ActionController::Base
hoge = Utils::Hoge.new
hoge.greeting
#=> hello
end
En écrivant cet article, j'ai trouvé le post suivant. (Le manque de recherche a été révélé ...)
Correction des autoload_paths pour éliminer l'erreur mystère
Selon Rails Guaid «Avant Rails 5, il était courant d'inclure lib / et ci-dessous dans autoload_paths, mais maintenant il n'est pas recommandé de placer le code dans un emplacement autre que le dossier de l'application et de le cibler pour le chargement automatique.» On dit qu'une erreur spécifique à l'environnement de production peut se produire.
Étant donné que l'application est incluse par défaut dans autoload_paths, Il semble bon d'utiliser cela.
Alors pourquoi le répertoire lib existe-t-il? Je me demande si les personnes douées en développement l'utilisent correctement.
C'est tout pour cette fois, quand de nouvelles questions se sont posées. Dédié chaque jour