Il percorso più semplice è fingere di scrivere una nuova app con uno schema di database simile: è quindi possibile creare i propri modelli e migrazioni tenendo conto del vecchio schema, ma senza esserne limitato. In una fase successiva, è possibile creare uno script di migrazione del database per copiare tutti i vecchi dati nel nuovo schema.
Lo sto facendo adesso. Il vantaggio di questo approccio è che puoi sfruttare tutti gli strumenti e le tecniche di sviluppo rapido forniti da Rails (inclusi gli scaffold) senza essere rallentati dal tentativo di eseguire il retrofit allo stesso schema.
Tuttavia, se decidi che questo approccio non ti piace, e devi mappare i tuoi nuovi modelli alle tabelle esistenti, ci sono un certo numero di opzioni di configurazione fornite dal record attivo in cui puoi sovrascrivere la convenzione configurazione denominazione modelli e nomi mappa modello per i nomi tabelle, impostare i campi ID strano nome, ecc ad esempio:
class Mammals < ActiveRecord::Base
set_table_name "tbl_Squirrels"
set_primary_key :squirrel_id
end
È possibile che questo contribuirà Rails tentativo di leggere il vostro tavolo esistente, ma il successo dipenderà da quanto bene la tabella esistente le strutture corrispondono alle convenzioni di Rails. Potrebbe essere necessario fornire più informazioni di configurazione per farlo funzionare, e anche in questo caso potrebbe non funzionare.
Infine, può essere opportuno prendere in considerazione l'uso di DataMapper che credo sia più adatto ai database dismesse esistenti di ActiveRecord, perché ti permette di mappa tutto, ma naturalmente si dovrà imparare che API se si non lo so già
E quindi creare modelli corretti per quelli di loro in cui si desidera utilizzare "forme". – Krule
Oh sì, ho dimenticato i moduli. Devo creare quei modelli manualmente? –
Tu, dovresti creare modelli e definire relazioni in essi, quindi creare forme dove ti servono. – Krule