2013-03-02 15 views
10

Ultimamente, sto usando la gem migliore_errors e trovo che le funzionalità di live shell (fondamentalmente una console di Rails incorporate nella vista) siano straordinariamente utili. Mi piacerebbe poter accedere a una shell live di questo tipo che potrei usare a scopo di debug/diagnostica, anche quando non ho un errore. Sarebbe qualcosa di bello da incorporare nel mio controller dell'applicazione e limitare l'accesso di amministratore in modo che potessi usarlo in un ambiente di staging o di produzione.Incorporamento di una console Rails live in una vista

C'è qualche altro strumento simile o forse un modo per rimuovere la shell live da better_errors e incorporarla nelle mie visualizzazioni?

+0

Hai guardato il codice? https://github.com/charliesome/better_errors – mathieugagne

+0

Penso che sia probabilmente la parte 'repl'. – mathieugagne

risposta

2

Hai dato un'occhiata a pry? Non è tecnicamente come better_errors dove apre una console nel browser, ma funziona allo stesso modo. Fondamentalmente è sufficiente aggiungere binding.pry in qualsiasi punto del codice, anche nelle visualizzazioni, per creare un punto di interruzione nel codice che consente di eseguire ciò che si desidera in quel momento.

C'è anche un Railscast su come usarlo http://railscasts.com/episodes/280-pry-with-rails

In alternativa, si dovrebbe solo essere in grado di lanciare un errore qualsiasi punto del codice, che si apre la pagina di better_errors a quel punto del codice.

Non sono sicuro di poterlo fare su Staging/Production, a parte aprire la console. Probabilmente non vorresti mai dare comunque quel livello di accesso al tuo codice su Production. A quel punto chiunque può accedere a quella pagina ha accesso completo al database. Anche se è limitato agli sviluppatori, sembra un potenziale rischio per la sicurezza.

+0

Sì, uso sempre leva, e lancio sempre errori fasulli solo per far apparire meglio_errors. Hai sicuramente ragione sui rischi per la sicurezza, ma a seconda dell'applicazione (ad esempio l'app aziendale interna) potrebbe non essere una cosa così brutta. –

Problemi correlati