Ciao ragazzi mi sto dedicando a ruby da pochi giorni e in particolare
a rails!
Confesso che ho molti dubbi, io arrivo da java e php ma mi sembrano
piu chiari, comunuqe non mi scoraggio!
la mia domanda é questa!
Se ho gia un database con una tabella di nome musa_development che ho
leggermnet modificato per l’inserimento dell’id come vuole rails.
Ora se creo il model con il nome della tabella al singolare mi prende
tutta la struttura???
Perché sto tentando di fare un find ma mi da indefinito methond e non
comprendo il perché
Gianluca R.
Consulente informatico
Tel 340 6715748
web: www.gladenko.com
mail: [email protected]
On 8/26/06, Gianluca [email protected] wrote:
Se ho gia un database con una tabella di nome musa_development che ho
leggermnet modificato per l’inserimento dell’id come vuole rails.
Ora se creo il model con il nome della tabella al singolare mi prende
tutta la struttura???
Ciao Gianluca,
puoi specificare il nome della tabella all’interno del modello:
class MyModel < ActiveRecord::Base
set_table_name “my_table”
end
Per maggiori informazioni circa gli accorgimenti richiesti per lavorare
con
database pre-esistenti o che non seguono le convenzioni di Rails, puoi
leggere questo tutorial:
http://wiki.rubyonrails.com/rails/pages/HowToUseLegacySchemas
Ciao,
Antonio
Perché sto tentando di fare un find ma mi da indefinito methond e non
comprendo il perché
Circa il “indefinito method”: Rails fa un uso pesante del metodo
“method_missing” che hanno tutti gli oggetti Ruby (giusto?). Questo è la
base del meccanismo che mappa nomi di tabelle a chiamate al codice, e
cioè quando chiami un metodo su un model, tipo
machine.find_by_manufacturer_and_type(“IBM”,“Typewriter”), in realtà la
chiamata è acchiappata al volo da “method_missing” e creata al volo.
Questo è molto diverso da come funzionano PHP e Java…

–
“Remember, always be yourself. Unless you suck.” - Joss Whedon
On 8/27/06, david [email protected] wrote:
[…] Rails fa un uso pesante del metodo
“method_missing” che hanno tutti gli oggetti Ruby (giusto?).
Sì, quando un metodo non esiste, l’interprete invoca il metodo che di
default genera un errore.
Puoi fare però l’override, definendolo in qualsiasi classe, di solito per
gestire dinamicamente una serie di metodi.
Per maggiori informazioni: ri Kernel#method_missing
Ciao,
Antonio