2012-08-05 17 views
9

Voglio creare un modello chiamato 'File', ma è un nome di modello riservato è rotaie. Non riesco a pensare a qualcos'altro sensato chiamare la modella, quindi mi chiedevo se esiste un modo standard per affrontare questo problema, ad esempio aggiungendo un prefisso o suffisso (_File, FileItem, ecc.)?Modelli con parole chiave riservate

risposta

8

Questo problema viene affrontato con modules:

moduli sono un modo per raggruppare insieme metodi, classi e costanti. I moduli offrono due importanti vantaggi:

  1. I moduli forniscono uno spazio dei nomi e impediscono conflitti di nomi.
  2. I moduli implementano la funzione di mixaggio.

[...]

moduli definiscono uno spazio dei nomi, una sandbox in cui i vostri metodi e costanti possono giocare senza doversi preoccupare di essere calpestati da altri metodi e le costanti.

Nel tuo caso:

module MyRailsApp 
    class File 
    ... 
    end 
end 

cui la classe File viene utilizzato come MyRailsApp::File. Questa è la soluzione tipica in Ruby, in Ruby on Rails questo potrebbe essere gestita in modo diverso, si prega di consultare i seguenti riferimenti per una discussione approfondita:

+0

Come si inserisce un modello in un modulo in rotaie? –

+0

@ CameronMartin Non è diverso da come hai messo una classe in un modulo. –

+0

È possibile creare modelli nei moduli facendo 'rails generate modulename/modelname' giusto? È meglio mettere tutti i tuoi modelli in un modulo o scegliere un nome non in conflitto? –

Problemi correlati