Rails> = 3, l'applicazione è di per sé un modulo (che vive in config/application.rb
). È possibile memorizzare nel modulo applicativo
module MyApplication
SUPER_SECRET_TOKEN = "123456"
end
Quindi utilizzare MyApplication::SUPER_SECRET_TOKEN
per fare riferimento alla costante.
Rails> = 2.1 & & < 3 si dovrebbe metterli
- nel
/config/initializers
quando la costante ha l'applicazioni portata
- quando la costante si riferisce ad un modello specifico/regolatore/assistente voi può spaziarlo all'interno della classe/modulo stesso
Prima del supporto di Rails 2.1 e initializers
, i programmatori venivano utilizzati per posizionare le costanti dell'applicazione in environment.rb.
Ecco alcuni esempi
# config/initializers/constants.rb
SUPER_SECRET_TOKEN = "123456"
# helpers/application_helper.rb
module ApplicationHelper
THUMBNAIL_SIZE= "100x20"
def thumbnail_tag(source, options = {})
image_tag(source, options.merge(:size => THUMBNAIL_SIZE)
end
end
fonte
2009-07-10 06:52:17
strano, ma non funziona. Anche se constants.rb viene eseguito all'avvio, non riesco ad accedere a SUPER_SECRET_TOKEN in controller o viste. –
Ora è divertente. Chi lo saprebbe che l''uppercaseness' di quelle costanti viene applicata su rotaie? –
Nota: non dimenticare di riavviare il server dopo aver eseguito una nuova costante. Altrimenti, non verrà visualizzato correttamente! –