Stò realizzando un progetto universitario, quindi non posso utilizzare
ne tabelle in inglese e neanche le chiavi esterne in standard rail.
Sono riuscito a risolvere quasi tutti i problemi dell’utilizzare tabelle
in italiano e chiavi con nome diverso da “id” … ma non sono riuscito a
realizzare una relazione molti-a-molti. Il mio problema è che o tabelle
tutte in italiano con chiavi che non si chiamano “id” e chiavi esterne
con nomi particolari.
Stò realizzando un progetto universitario, quindi non posso utilizzare
ne tabelle in inglese e neanche le chiavi esterne in standard rail.
A meno che la traccia del progetto sia: “fai una web application IN
RAILS con QUESTO SCHEMA di db” allora dovresti scegliere uno tra:
cambiare lo schema per utilizzare le convenzioni rails (e anche le
tabelle in inglese) [1]
cambiare il tool di sviluppo (rails e’ perfetto per lo sviluppo di
applicazioni web, ma devi tenere in considerazione tutti i requisiti ed
i constraint del progetto)
Se invece il progetto E’ “fai una web application IN RAILS con QUESTO
SCHEMA di db”, allora dovresti studiarti bene il supporto di rails per i
database legacy (mi pare che ci fosse anche un gruppo google
sull’argomento). Ma come gia ti sei accorto c’e’ molto di piu da
lavorare (almeno come “configurazione”, visto che non puoi usare molte
delle convenzioni)
HTH
Luca
[1] Quando mi sono laureato le tesi “dovevano essere” in italiano.
D’accordo con il relatore che mi seguiva abbiamo fatto un breve abstract
in italiano e tutto il contenuto come allegato in inglese (era un
contributo ad un piccolo progetto internazionale). Se invece il tuo e’
il progetto di un corso “rifiutare” l’uso dell’inglese anche solo nel
codice mi pare veramente assurdo.
Nel thread “Convenzioni active record” che ho aperto un po’ di tempo fa
ho
posto circa la stessa domanda. Ci sono alcune risposte valide. Prova a
vedere.
Silvia
class Documento < ActiveRecord::Base
belongs_to :seduta, :foreign_key => ‘numero_seduta’
End
class Seduta < ActiveRecord::Base
has_many :documenti, :foreign_key => ‘numero_seduta’
End
Non è neanche indispensabile che “numero_seduta” sia una primary key:
è semplicemente un campo di relazione
Active record non fa veramente caso a cosa ci sia sotto, si accontenta
di obbedirti ciecamente…