J'ai créé un Gem avec des modèles (en fait, extrait du projet principal) pour partager parmi les projets que nous avons dans notre plate-forme.Gemme avec des modèles
Nous avons des dizaines de modèles, donc au lieu d'exiger un par un, j'ai écrit le code suivant:
Gem.find_files("my_gem/models/*.rb").each { |path| require path }
-je accéder à l'un des projets qui my_gem a dans le fichier des pierres précieuses et en cours d'exécution rails c
je reçois la sortie suivante:
/Users/myuser/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.8/lib/active_record/dynamic_matchers.rb:50:in `method_missing': undefined method `has_attached_file' for #<Class:0x007fad4b93ccb8> (NoMethodError)
Un de mes modèles utilise le paperclip bijou, ce qui est bizarre est:
- Si je supprime la ligne déclarée ci-dessus pour charger tous les modèles automatiquement,
rails c
fonctionne bien - Si je tente d'inclure onlye le modèle qui utilise paperclip
require "my_gem/models/paperclip_model"
je reçois la même erreur
Alors je change mon gem pour ne charger aucun modèle, et quand j'essaye de référencer n'importe quel modèle de la console rails, il dit que la classe n'est pas chargée, mais alors je cours Gem.find_files("my_gem/models/*.rb").each { |path| require path }
ou require "my_gem/models/paperclip_model"
'ils fonctionnent parfaitement et je suis capable de travailler avec le modèle.
L'un de vous a-t-il déjà vu le même problème?
Où dans votre code Rails appelez-vous 'Gem.find_files (" my_gem/models/*. Rb "). Chaque {| path | require le chemin} 'from? –