Salve a tutti. Rinnovo i miei complimenti per l’ottimo servizio che
offrite.
Volevo porvi una domanda e spero che mi possiate dare qualche
suggerimento. Probabilmente la soluzione è molto semplice, ma non riesco
proprio a sbloccarmi.
PROBLEMA:
Riesco facilmente ad interfacciarmi con Java, ma trovo delle limitazioni
all’interno dei controller di Rails.
All’interno del controller inizializzo una classe jena (ModelFactory)
che crea un modello (Jena) di una ontologia. La salvo in una variabile
(@model) ma non riesco a capire come posso conservarla in tutte le
action.
SOLUZIONE ATTUALE (molto poco elegante):
Creo una costante.
MODEL = ModelFactory.createOntologyModel(OntModelSpec::OWL_MEM)
E’ una soluzione che non mi piace affatto. C’è un modo alternativo per
superare questo mio problema?
Ciao Pippo,
non mi è chiarissimo il problema, se ti interessa la persistenza o solo
una visibilità maggiore, in quest’ultimo caso hai provato a crearlo
nell’application controller?
Ciao Pippo,
non mi è chiarissimo il problema, se ti interessa la persistenza o solo
una visibilità maggiore, in quest’ultimo caso hai provato a crearlo
nell’application controller?
Si scusa hai ragione mi sono espresso male. Vorrei che la variabile sia
persistente e mantenesse quindi il contenuto fra pagina e pagina. Jena
genera un suo modello(jena) su cui si possono eseguire svariate
interrogazioni. Io sostanzialmente non vorrei rigenerare ogni volta
questo modello(jena). In rails il contenuto della variabile è
persistente solo fra il metodo del controller e la sua relativa view.
Fra i diversi metodi dello stesso controller la variabile viene
reinizializzata ad ogni accesso. In generale, risolvevo questa esigenza
con session o memorizzando in un DB, ma in questo caso non posso. Credo
che sia collegato alla spiegazione fornita qui: http://www.ruby-forum.com/topic/133234
Probabilmente la soluzione è banale ma proprio non trovo vie di uscita.
Sostanzialmente tu mi suggerisci di creare il modello(jena)
nell’application_controller? Provo
provato a serializzare/deserializzare e mettere in session quello?
Puoi sicuramente come serializzazione java, ma mi pare che jena
potesse serializzare in N3 e robe simili, poi le metti come campo
text/blob nel db
SOLUZIONE ATTUALE (molto poco elegante):
Creo una costante.
MODEL = ModelFactory.createOntologyModel(OntModelSpec::OWL_MEM)
E’ una soluzione che non mi piace affatto. C’è un modo alternativo per
superare questo mio problema?
come spiegato nel link che citavi, quando passi da un’action all’altra
(ad esempio cliccando su un link o su un submit), l’oggetto controller
cambia; questo vuol dire che non puoi passare oggetti complessi da
un’action all’altra: sostanzialmente puoi passare (ad esempio tramite
session) solo stringhe e numeri.
Non conosco le classi java di cui parli, quindi ho una domanda: quanto
è costoso produrre l’oggetto che ti serve?
Se non è costoso potresti semplicemente usare un’instance variable,
una costante o quant’altro.
Se il costo è proibitivo, puoi tentare di scoprire se l’oggetto è
serializzabile.
provato a serializzare/deserializzare e mettere in session quello?
Puoi sicuramente come serializzazione java, ma mi pare che jena
potesse serializzare in N3 e robe simili, poi le metti come campo
text/blob nel db
Più che altro è che sto caricando una ontologia di 20 MB e tirarla su
ogni volta ad ogni azione non è troppo divertente per l’utente. Quindi
in Java dici che posso serializzare la classe? Ora ho fatto una ricerca
più approfondita nelle API di Jena e credo che esistano metodi di questo
tipo. Hai ragione. A occhio dovrebbero essere adatte cose come:
Io cercavo di risolvere la cosa direttamente in ruby ed effettivamente
mi complicavo le cose.
SOLUZIONE ATTUALE (molto poco elegante):
Creo una costante.
MODEL = ModelFactory.createOntologyModel(OntModelSpec::OWL_MEM)
E’ una soluzione che non mi piace affatto. C’� un modo alternativo per
superare questo mio problema?
Non conosco le classi java di cui parli, quindi ho una domanda: quanto
� costoso produrre l’oggetto che ti serve?
Se non � costoso potresti semplicemente usare un’instance variable,
una costante o quant’altro.
Beh ma anche le instance variable vengono rigenerate, o mi sbaglio? Mi
riferisco a @model che ho citato prima, per esempio. Ad ogni richiesta
al server me la ritrovo reinizializzata. Con le costanti funziona, ma
poi non posso modificarle run-time.
Si è abbastanza costoso produrre quell’oggetto. Ogni volta sarebbe una
lettura di 20Mb
Se il costo � proibitivo, puoi tentare di scoprire se l’oggetto �
serializzabile.
Salve a tutti. Rinnovo i miei complimenti per l’ottimo servizio che
offrite.
Volevo porvi una domanda e spero che mi possiate dare qualche
suggerimento. Probabilmente la soluzione � molto semplice, ma non riesco
proprio a sbloccarmi.
PREMESSA:
Ho scelto jRuby perch� devo usare delle classi JAVA e pi� precisamente
vorrei utilizzare le API di Jena
Scusa hai scelto jruby esclusivamente perche’ devi usare classi java o
ci sono degli altri motivi?
Io non uso java ma utilizzo jruby sostanzialmente per un motivo, la
facilita’ di deploy delle applicazioni.
Rispetto a ruby non ho trovato nessunissima differenza.
Scusa non avevo letto!
Si essenzialmente per il riuso di classi Java, altrimenti tendo ad usare
ruby. Potrei sbagliarmi, ma credo che il supporto sia più limitato (per
esempio con le gemme). Quindi sostanzialmente uso jRuby solo quando è
strettamente necessario. In ogni caso con jRuby non ho mai avuto
problemi. Anch’io ho trovato il deploy molto rapido: io uso per esempio
warbler.
Ho scelto jRuby perch� devo usare delle classi JAVA e pi� precisamente
Si essenzialmente per il riuso di classi Java, altrimenti tendo ad usare
ruby. Potrei sbagliarmi, ma credo che il supporto sia più limitato (per
esempio con le gemme). Quindi sostanzialmente uso jRuby solo quando è
strettamente necessario. In ogni caso con jRuby non ho mai avuto
problemi. Anch’io ho trovato il deploy molto rapido: io uso per esempio
warbler.
Anch’io uso warbler e rispetto alla soluzione apache + passenger non
c’e’ paragone.
Per le gemme ormai sono quasi tutte supportate.
Salve a tutti. Rinnovo i miei complimenti per l’ottimo servizio che
offrite.
Volevo porvi una domanda e spero che mi possiate dare qualche
suggerimento. Probabilmente la soluzione è molto semplice, ma non riesco
proprio a sbloccarmi.
PREMESSA:
Ho scelto jRuby perché devo usare delle classi JAVA e più precisamente
vorrei utilizzare le API di Jena
Scusa hai scelto jruby esclusivamente perche’ devi usare classi java o
ci sono degli altri motivi?
Io non uso java ma utilizzo jruby sostanzialmente per un motivo, la
facilita’ di deploy delle applicazioni.
Rispetto a ruby non ho trovato nessunissima differenza.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.