/ / Rails Load Class avec un nom de dossier non conventionnel - ruby-on-rails, naming-conventions

Classe de charge Rails avec nom de dossier non conventionnel - ruby-on-rails, naming-conventions

J'ai un module que je veux appeler OAuth et une classe à l'intérieur appelée AccessToken. Normalement dans les rails je voudrais le mettre dans app/models/o_auth/access_token.rb. Comment puis-je l'obtenir à charger du chemin app/models/oauth/access_token.rb?

Réponses:

0 pour la réponse № 1

Ajouter un require "app/models/o_auth/access_token" Au sommet de application.rb, et au sommet de tout autre modèle qui l’utilise. C’est ce que vous devez faire pour chaque modèle, sans l’idéal de la convention sur la configuration de RoR, et son importateur magique.


0 pour la réponse № 2

Ajouter ces lignes à config/application.rb

# Load Subfolder Models
config.autoload_paths += Dir[Rails.root.join("app", "models", "{**}")]

0 pour la réponse № 3

Je pense que ma question était trop subtile. Je demandais comment charger ma classe à partir de ce chemin spécifique, et non comment ajouter un chemin au chemin de chargement automatique en général. Mon problème était que, comme ma classe OAuth commençait par deux lettres majuscules, rails attend un chemin de o_auth, comme tout ce qui pourrait le référencer sous forme de symbole. En raison de tout ce que vous auriez à faire pour obtenir des références de symbole de oauth afin de pointer vers une classe OAuth, il semble préférable de simplement nommer le dossier o_auth au lieu de oauth.