2014-04-11 11 views
10

In deploy.rb, credo che lo :rails_env sia impostato in genere da require 'capistrano/rails' trovato nel numero Capfile. Utilizzo le rotaie, ma non utilizzo la pipeline di asset incorporata e, pertanto, non utilizzare capistrano/rails ed era nella situazione di dover impostare manualmente :rails_env in deploy.rb quando si passa da distribuzioni di staging a quelle di produzione. Ciò è sembrato piuttosto sciocco poiché l'ambiente è sempre incluso quando si esegue cap staging deploy o cap production deploy. Sto postando questa domanda, perché sembra che potrebbe essere un punto dolente abbastanza comune con una soluzione banale, ma dopo molto googling, sono venuto a mani vuote. Ho quindi scavato nel codice sorgente Capistrano 3.1.0 per capire come accedere alla variabile stage inserita nella riga di comando e darò una risposta breve che spiega un po '.Come si accede a rails_env dal comando Cap deploy?

risposta

23

La risposta semplice è aggiungere la seguente linea vicino all'inizio della deploy.rb:

serie: RAILS_ENV, fetch (: fase)

La variabile :stage impostato nel capistrano/setup che è richiesto nel tuo Capfile. Questo script crea attività rake per ogni fase definita in config/deploy. All'interno della definizione per l'attività rake si trova quanto segue: set(:stage, stage.to_sym) che è la variabile stage/rails_env dal comando cap staging deploy o cap production deploy.

Problemi correlati