Caricamento settings con ActiveRecord

Ciao a tutti

In un’app Rails devo caricare dei valori da una tabella di settings
appena
parte l’applicazione. Qual’ il posto giusto?

Sono partito con l’idea dell’initializer e sul mio laptop tutto ok, ma
quando deploy sono casini, perch quel codice viene eseguito in fase di
deploy da heroku (credo per via degli assets) e la tabella non esiste
ancora…quindi errore.

Per ora ho risolto con un check sull’esistenza della tabella…ma un
metodo pi pulito lo preferirei.

grazie

Se quei settings ti servono durante l’inizializzazione hai fatto bene
cos.
Altrimenti trattalo come un modello normale.
A dire il vero non capisco perch ti serva caricare dei settings dal
database durante l’inizializzazione dell’applicazione. Mi suona strano.

2013/11/15 Emanuele DelBono [email protected]

On Friday, November 15, 2013 at 5:44 PM, Emanuele DelBono wrote:

Per ora ho risolto con un check sull’esistenza della tabella…ma un
metodo più pulito lo preferirei.

Mi sembra ok, ricordati che puoi disabilitare il loading
dell’environment alla generazione degli assets. [1]
Assicurati che la generazione non dipenda appunto dalla presenza
dell’env. Alcune gemme lo richiedono (ad esempio js-routes).

Federico

[1]

Non ho chiaro il problema, ma non puoi caricare i dati in modo lazy
quando
li usi la prima volta e cacharli? e.g.

in application_controller

def settings() @@settings ||= load data end

?

2013/11/15 Federico R. [email protected]

ancora…quindi errore.

[1]
Rails Asset Pipeline on Heroku | Heroku Dev Center


Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


twitter: @riffraff
blog (en, it): www.riffraff.info riffraff.blogsome.com
work: circleme.com

Gabriele, hai ragione…non ci avevo pensato! #facepalm
:slight_smile:

thx

2013/11/15 gabriele renzi [email protected]

Grazie. :slight_smile:
Si avevo visto l’articolo di heroku, e infatti cosi facendo risolvo.

Quello che carico sono impostazioni applicative (“variabili globali”
;-))
che mi servono nell’applicazione. Quindi carico dal db alcune cose e mi
creo al volo una classe settings generando i metodi get a runtime.

ciaoo

2013/11/15 Federico R. [email protected]

On Friday, November 15, 2013 at 6:15 PM, Emanuele DelBono wrote:

Grazie. :slight_smile:
Si avevo visto l’articolo di heroku, e infatti cosi facendo risolvo.

Quello che carico sono impostazioni applicative (“variabili globali” ;-))
che mi servono nell’applicazione. Quindi carico dal db alcune cose e mi
creo al volo una classe settings generando i metodi get a runtime.

Glad it helped.

Federico

Se non sono valori che devi modificare a runtime, puoi caricare un file
yaml, evitando gli sbattimenti del db.

Ho scritto una gemma:

succede :slight_smile:

Alternativamente, io spesso faccio una cosa simile, ma mettendo i valori
in
una lambda dentro config e.g.

config/production

config.settings_proc = lambda { Db.stuff }

config/test

config.settings_proc = lambda { hardcoded }

etc

2013/11/15 Emanuele DelBono [email protected]

li usi la prima volta e cacharli? e.g.

On Friday, November 15, 2013 at 5:44 PM, Emanuele DelBono wrote:

deploy da heroku (credo per via degli assets) e la tabella non esiste
Alcune gemme lo richiedono (ad esempio js-routes).
Ml mailing list



Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


twitter: @riffraff
blog (en, it): www.riffraff.info riffraff.blogsome.com
work: circleme.com