Ruby on Rails, senza activeRecord :Base


#1

Buona sera,
vorrei saper se a qualcuno è capitato di utilizzare il MVC senza
ActiveRecord collegato quindi ad un database (e.g. MySql).

Il problema è sorto, nella fase di sviluppo ed importando delle classi
che eseguono da se le operazioni di connessione attraverso un database
tramite driver jdbc di MySql.

La situazione è al lato pratico… ovvero… sono riuscito ad
instanziare e chiamare i vari metodi dal Controller ma non so
esattamente come collegare la view ed inserire il dato nel metodo set
che è implementato nel controller…

L’idea mia era quella di instanziare un oggetto nel model, e.g.

def title
@title = # non so che mettere
end

Nel view inserire:

<%= text_field :title %> # che richiami il metodo definito nel model

poi nel controller instanziare il metodo set ed inserire l’oggetto title
import ‘java.PostInfo’
def create
@post_info = PostInfo.new
@post_info.setTitle(@post.title)
end

per info il setTitle in java è sviluppato in questo modo:

public void setTitle(String title) {
primaryInformation.addInformation(“title”, title);
}

// dove primaryInformation è stata instanziata all’interno del
costruttore PostInfo.

Grazie
Un saluto a tutto il gruppo Italian Ruby
Daniel


#2

Daniel,

dal tuo post di qualche giorno fa deduco che usi JRuby. Confesso che di
Ruby sulla VM Java non so nulla, ma il tuo problema mi ha incuriosito e
così ho trovato
http://wiki.jruby.org/wiki/Running_Rails_with_ActiveRecord-JDBC

Apparentemente a parte installare le gemme e configurare database.yml
non c’è altro da fare. Si usa tranquillamente ActiveRecord e jdbc va a
gestire la connessione con il db.

Se invece vuoi fare a meno di ActiveRecord, a logica dovresti usare le
classi Java per l’accesso al db, con tutti i loro setter e getter. Non
dovrai quindi creare nessun modello Ruby che tra l’altro non servono a
comunicare con le view: quello che le view vedono infatti sono solo le
variabili di istanza del loro controller. Ai dati dei modelli arrivano
tramite quelle.

Per finire, ribadisco che dell’argomento ne so pochissimo ma visto che
non ti risponde nessuno ho pensato che due parole per aiutarti a
riflettere potessero essere meglio che nulla.

Paolo

Cecchin Daniel wrote:

Buona sera,
vorrei saper se a qualcuno è capitato di utilizzare il MVC senza
ActiveRecord collegato quindi ad un database (e.g. MySql).

Il problema è sorto, nella fase di sviluppo ed importando delle classi
che eseguono da se le operazioni di connessione attraverso un database
tramite driver jdbc di MySql.

La situazione è al lato pratico… ovvero… sono riuscito ad
instanziare e chiamare i vari metodi dal Controller ma non so
esattamente come collegare la view ed inserire il dato nel metodo set
che è implementato nel controller…

L’idea mia era quella di instanziare un oggetto nel model, e.g.

def title
@title = # non so che mettere
end

Nel view inserire:

<%= text_field :title %> # che richiami il metodo definito nel model

poi nel controller instanziare il metodo set ed inserire l’oggetto title
import ‘java.PostInfo’
def create
@post_info = PostInfo.new
@post_info.setTitle(@post.title)
end

per info il setTitle in java è sviluppato in questo modo:

public void setTitle(String title) {
primaryInformation.addInformation(“title”, title);
}

// dove primaryInformation è stata instanziata all’interno del
costruttore PostInfo.

Grazie
Un saluto a tutto il gruppo Italian Ruby
Daniel


#3

Hai pensato a sinatra?
ah come mai usi jruby?


#4

Grazie mille Paolo,
non sai quanto mi hai chiarito le idee… con questa tua affermazione,
non è da molto che sono entrato in questo mondo, ma per il progetto
all’uni dovevamo interagire con un codice Java(in risposta ad Andrea).

Quando avrò risolto il problema … ti farò sapere esattamente la
struttura completa per le chiamate alle classi Java…

Saluti
Daniel

Grazie ancora, Paolo…

Paolo M. wrote:

Daniel,

dal tuo post di qualche giorno fa deduco che usi JRuby. Confesso che di
Ruby sulla VM Java non so nulla, ma il tuo problema mi ha incuriosito e
così ho trovato
http://wiki.jruby.org/wiki/Running_Rails_with_ActiveRecord-JDBC

Apparentemente a parte installare le gemme e configurare database.yml
non c’è altro da fare. Si usa tranquillamente ActiveRecord e jdbc va a
gestire la connessione con il db.

Se invece vuoi fare a meno di ActiveRecord, a logica dovresti usare le
classi Java per l’accesso al db, con tutti i loro setter e getter. Non
dovrai quindi creare nessun modello Ruby che tra l’altro non servono a
comunicare con le view: quello che le view vedono infatti sono solo le
variabili di istanza del loro controller. Ai dati dei modelli arrivano
tramite quelle.

Per finire, ribadisco che dell’argomento ne so pochissimo ma visto che
non ti risponde nessuno ho pensato che due parole per aiutarti a
riflettere potessero essere meglio che nulla.

Paolo

Cecchin Daniel wrote:

Buona sera,
vorrei saper se a qualcuno è capitato di utilizzare il MVC senza
ActiveRecord collegato quindi ad un database (e.g. MySql).

Il problema è sorto, nella fase di sviluppo ed importando delle classi
che eseguono da se le operazioni di connessione attraverso un database
tramite driver jdbc di MySql.

La situazione è al lato pratico… ovvero… sono riuscito ad
instanziare e chiamare i vari metodi dal Controller ma non so
esattamente come collegare la view ed inserire il dato nel metodo set
che è implementato nel controller…

L’idea mia era quella di instanziare un oggetto nel model, e.g.

def title
@title = # non so che mettere
end

Nel view inserire:

<%= text_field :title %> # che richiami il metodo definito nel model

poi nel controller instanziare il metodo set ed inserire l’oggetto title
import ‘java.PostInfo’
def create
@post_info = PostInfo.new
@post_info.setTitle(@post.title)
end

per info il setTitle in java è sviluppato in questo modo:

public void setTitle(String title) {
primaryInformation.addInformation(“title”, title);
}

// dove primaryInformation è stata instanziata all’interno del
costruttore PostInfo.

Grazie
Un saluto a tutto il gruppo Italian Ruby
Daniel