j'ai essayé de désactiver le chargement automatique des plug-ins dans mon environment.rb pour la tâche de coupe « gemmes: installer », car il peut conduire à des dépendances non résolues et des erreurs (lire http://blog.joopp.com/2009/01/26/plugin-gem-dependencies-in-your-environmentrb/ pour plus d'informations).Rails: obtenir le nom de la tâche rake appelée dans environment.rb?
Alors que la mise en œuvre de cette « hack », je me suis vite remarqué que la variable $ rails_gem_installer, qui devrait être définie sur true si gemmes: installation est exécuté, est pas défini. (= nil)
Maintenant, je cherche un moyen d'obtenir des informations sur la tâche rake appelé, ou existe-t-il une autre solution de travail?
Im Rails de course 2.3.10/Ruby 1.8.7
Voici le code de mon environment.rb pour une meilleure compréhension:
Rails::Initializer.run do |config|
# fix for plugins dependent on gems
# see http://blog.joopp.com/2009/01/26/plugin-gem-dependencies-in-your-environmentrb/
if $rails_gem_installer
# We stop the initializer to load the files from the /config/initializers dir. This is to disable the usage of plugins or gems in that code.
puts 'Disabling the application initializers (rails_gem_installer == true)'
class Rails::Initializer
def load_application_initializers; end
end
# Next, do _only_ load the needed plugins that are not dependent on gems. For example exception_notification since that one is used in application.rb.
puts 'Not loading all plugins (rails_gem_installer == true)'
config.plugins = [:exception_notification]
else
# Otherwise, when we're just loading the environment.. load everything in the right order. So this is YOUR config.plugins = [something]!
config.plugins = [:all]
end
[... stuff like config.gem and so on]
Je ne sais pas ce que vous essayez de faire. Mais si vous avez besoin de pirater le comportement par défaut de Rails comme ceci, vous le faites probablement mal. – Ariejan
Si vous avez déjà été dans une situation où un plugin (fournisseur/plugins) dépendait d'une gemme, vous pourriez comprendre le problème et pourquoi j'ai besoin de cette solution pour déployer avec Capistrano – Makibo