2010-11-19 12 views
2

J'ai une tâche de râteau pour remplir ma db qui dépend de Faker, alors au sommet il y a:Ignorer la tâche de coupe dans la production

require 'faker'

Le problème est que je ne l'installe pas Faker dans la production de sorte que tous Les commandes rake (comme db:migrate) échouent sur cette ligne, indiquant que faker est manquant.

De toute évidence, je pourrais installer faker en production pour contourner cela, mais je n'en ai pas besoin là-bas. Alors, quelle est la solution droite - puis-je en quelque sorte ignorer certaines tâches de rake en production?

Répondre

4

Déplacez le require dans la tâche qui a besoin réellement.

+0

Merci, ça marche super! – tyson

2

Je suppose que vous pourriez faire require 'faker' unless RAILS_ENV='production'

+2

Ce n'est pas une solution propre, car que se passe-t-il si vous décidez que vous avez besoin de cette tâche dans 'staging'? Dans ce cas, vous pouvez détacher la tâche de l'environnement, déplacez simplement le require dans la tâche qui en a besoin. –