(Ceci est vraiment une question de débutant à propos Rake & Rails & dépendances en général. Essayer d'envelopper la tête autour de la façon dont tout cela va ensemble)Comment mettre en place une tâche Rake pour l'ensemencement
Fondamentalement, je veux un Rake tâche qui agit comme seed.rb mais est appelée séparément. Il ajoute des données de test pour l'environnement de développement, tandis que seed.rb fournit des données de base pour tous les environnements.
Le script, family_seed.rb, utilise FactoryGirl pour générer des enregistrements. Il ressemble à ceci:
require File.expand_path('../../config/environment', __FILE__)
require './spec/factories'
Family.delete_all
Member.delete_all
zinsser = Factory.create(:family, :last_name=>'Zinsser', :first_name=>'Carl', :sim_id => '500')
blackburn = Factory.create(:family, :last_name=>'Blackburn', :first_name=>'Greg', :sim_id => '501')
Il fonctionne très bien avec bundle exec "ruby db/family_seeds.rb"
, mais ma question est de savoir comment le configurer avec râteau. Le tout devrait-il être placé dans une tâche de Rake? Comment pourrais-je, à la place, configurer une tâche qui appelle le script, tout en s'assurant que l'environnement de développement Rails est disponible quand il s'exécute? J'essaie non seulement de faire le travail, mais de le faire d'une «bonne» manière.
C'est un excellent avertissement! Est-il possible de garantir qu'une tâche s'exécute uniquement dans un environnement donné? L'objet tel que la classe FamilySeed peut-il inspecter l'environnement pour voir s'il s'agit d'un test ou d'une production? –
J'ai mis à jour le code pour lever une exception si les rails env sont en production. – idlefingers