2012-01-17 13 views
7

Il mio obiettivo è utilizzare Pry come console per la mia app Rails, sia localmente che sul mio server di staging. Ma non riesco a farlo funzionare su Heroku.Perché Pry non correrà nella console di Heroku?

Sto seguendo le istruzioni these per ottenere che Heroku utilizzi Pry come console per la mia app Rails. Quando eseguo heroku run console pry, la mia console stampa Running console pry attached to terminal... up, run.1 e quindi esce. Quando corro heroku console pry dice solo main e poi esce.

Qualche idea su cosa sto facendo male?

Ecco che cosa ho fatto finora:

  1. Nel mio Gemfile ho aggiunto le righe:
    gem 'pry'
    gem 'pry-rails'

  2. ho creato un file chiamato pry che contiene:
    #!/usr/bin/env ruby
    require 'pry'
    pry

  3. ho aggiunto il seguente a tutti i file in config/ambienti:
    silence_warnings do
    begin
    require 'pry'
    IRB = Pry
    rescue LoadError
    end
    end

  4. corsa bundle install

  5. corsa git push staging master
+1

Penso che metterlo come root del progetto (la stessa directory di 'Gemfile' et al) sia corretto. Come menziona @JohnBachir assicurati di avere anche 'gem 'pry'' nel tuo Gemfile e di aver eseguito' bundle install' e poi aggiunto 'pry',' Gemfile' e 'Gemfile.lock' al tuo repository prima di premere a Heroku. –

+0

@Jordan, l'avevo già fatto; solo una domanda aggiornata per rispecchiarlo. – thewillcole

risposta

12

Io sono colui che ha sviluppato il metodo per Heroku e Pry ma hai sollevato un caso interessante a cui non ho pensato poiché mi schiero principalmente con Sinatra ed EM e costruisco i miei propri aiutanti e così via.In entrambi i casi:

Per utilizzare leva con Heroku pur avendo un'applicazione Rails è sufficiente aggiungere di leva-rail e fare leva per il vostro Gemfile (come un normale Gem) e poi bundle install e poi git [commit|push] ed eseguire heroku run console sulla pila Cedar. Il passaggio 3 di ciò che hai fatto dove hai regolato la configurazione non va e non dovrebbe essere fatto, per favore, ripristina questa modifica se puoi. Dopo averlo fatto e rimosso lo script di leva dalla radice della tua app (beh, non devi necessariamente farlo), Pry si caricherà correttamente con i tuoi Rails.

+0

Uh-oh. Sono su 'bamboo-mri-1.9.2' non' ceder'. Funziona solo su 'ceder'? – thewillcole

+0

@theWillCole Dovresti essere in grado di usarlo anche su Bamboo, basta adattare il lancio della console a quello richiesto dal tuo stack che credo per Bamboo sia solo "heroku console" per Bamboo stack. –

+0

Ho eseguito l'aggiornamento al server "thin" e allo stack "cedar" di heroku. Da qualche parte lungo la linea ha iniziato a lavorare. Non sono del tutto sicuro di quale fosse il problema, ma questa risposta funziona per me ora. – thewillcole

0

probabilmente dovete elencare nella vostra bundler Gemfile.

+0

Lo aveva già fatto, ma ho dimenticato di menzionarlo nella domanda. Qualche altro pensiero? – thewillcole

3

Ho appena usato le istruzioni allo https://github.com/pry/pry/wiki/Setting-up-Rails-or-Heroku-to-use-Pry per configurarlo, fare leva sul file va nella radice del progetto. Impegnati e spingi su Heroku - Sto usando lo stack Cedar.

Effetto una sessione di console su heroku run console pry - Ho trovato che ho quindi bisogno di eseguire pry da rilasciare in un prompt di leva ma poi ha funzionato come mi sarei aspettato.

AGGIORNAMENTO: Per essere chiari, ho aggiunto leva a Gemfile e creato il file di leva come indicato. Il tuo problema è che stai bloccando il tuo gemfile su dev/test? Stai facendo girare le tue app su Heroku in quegli ambienti? Quindi perché stai ricevendo metodi indefiniti?

+0

Ho rimosso il: groups => [: development,: test] dal mio Gemfile. Non ricevo più l'errore del metodo non definito, ma la console esce ancora non appena la avvio. – thewillcole

+0

Per i futuri visitatori di questa domanda, come ora le istruzioni stanno nel 2017, basta eseguire 'heroku run console'. – Evolve

Problemi correlati