risposta

28

Per espandere un po 'la risposta di Paritosh, Rails.env.production? e Rails.env.development? restituiranno true/false a seconda dell'ambiente in cui si sta utilizzando.

Questi metodi sono definiti nella classe StringInquirer nel modulo ActiveSupport. Li vedi here.

+0

Dove posso vedere la fonte di queste funzioni? deve essere una cosa meta-programmazione. Qualche idea? – shajin

+1

Sì, lo è. Dai un'occhiata [qui] (https://github.com/rails/rails/blob/e20dd73df42d63b206d221e2258cc6dc7b1e6068/activesupport/lib/active_support/string_inquirer.rb). – Zajn

2

utilizzare Rails.env, fornirà l'ambiente su cui si sta lavorando.

+1

Grazie, questo è quello che stavo cercando. Sembra che restituisca StringInquirer. C'è un modo particolare in cui ci aspettiamo di interrogare questo oggetto? –

+0

verifica la risposta @Zajn, si adatta perfettamente alle tue esigenze. –

7

Per riff fuori della risposta precedente, è possibile ambito tuo controllo per ambienti specifici in questo modo:

Rails.env.development? 

dove development? è il nome dell'ambiente che si desidera controllare.

anche qualcos'altro che tendo a fare è che se sto controllando più ambienti si può decidere di fare qualcosa di simile:

if %w(staging production).include?(Rails.env) 
    # do something 
end 
Problemi correlati