[RUBY] Utilisez votre propre classe dans le répertoire lib avec Rails6

Comment créer et utiliser votre propre classe, Cette fois, je vais vous présenter comment le créer sous root / lib.

environnement

rails 6.0.3

paramètres application.rb

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)

Configuration sous lib

lib
 ├── assets
 ├── asks
 └── utils
     └── hoge.rb

J'ai créé utils / hoge.rb. Donnons-lui un nom descriptif.

Contenu de hoge.rb

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

finalement

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

Recommended Posts

Utilisez votre propre classe dans le répertoire lib avec Rails6
Appelez votre propre classe créée sous lib avec Rails
Utilisez JDBC Manager avec les paramètres de jdbc.dicon.
Utilisez votre propre docker-compose.yml sur la ligne de commande
Utiliser des images avec des rails
Appelez votre propre méthode avec PreAuthorize dans Spring Security
Japaneseize en utilisant i18n avec Rails
Utilisez plusieurs bases de données avec Rails 6.0
Utilisez plusieurs cases à cocher dans Rails6!
[Docker] À utiliser à tout moment avec Docker + Rails
[Rails / Routing] Comment faire référence au contrôleur dans votre propre répertoire
Utilisez Heroku × Rails pour rediriger vers votre propre domaine avec rack-rewrite
À propos du symbole <%%> dans Rails erb
[Rails] Utiliser des cookies en mode API
Utilisez LocationAwareLogger pour votre propre enregistreur
Gérez vos propres annotations en Java
Utiliser le plugin Findbugs dans Eclipse
Comment utiliser les classes en Java?
[Ruby on Rails] Comment se connecter avec seulement votre nom et mot de passe en utilisant le bijou
[Rails] Comment obtenir les informations sur l'utilisateur actuellement connecté avec devise
[Rails] Utilisez le dispositif pour obtenir des informations sur l'utilisateur actuellement connecté
[Rails] Comment appliquer le CSS utilisé dans l'application principale avec Administrer
Comment créer votre propre annotation en Java et obtenir la valeur
Créez votre propre validateur avec Bean Validation
[Rails] Comment utiliser la méthode de la carte
Préparer l'environnement de format pour "Rails" (VScode)
[Java] Utiliser la technologie cryptographique avec les bibliothèques standard
Remplissez l'écran avec des boutons dans TableLayout
Comment utiliser MySQL dans le didacticiel Rails
Vérifiez le contenu du traitement avec [rails] binding.pry
[Rails] Réinitialisez la base de données dans l'environnement de production
Comment utiliser credentials.yml.enc introduit à partir de Rails 5.2
Rails6: Extraire l'image dans le texte d'action
[Rails] Comment enregistrer plusieurs enregistrements dans la table intermédiaire avec une association plusieurs-à-plusieurs
Créez vos propres raccourcis avec Xcode pour éliminer les travaux d'installation compliqués des pods
[Rails] Comment utiliser la méthode d'assistance utilisée dans l'application principale avec Administrer