42

Prendo la denominazione abbastanza seriamente, quindi penso piuttosto bene ai nomi validi per i miei modelli ActiveRecord. Tuttavia, mi viene spesso in mente un nome e ha qualche conflitto con un nome riservato, nel database o in Ruby o Rails. Nome di modello o campo come set o group. A volte il problema non è immediatamente evidente. C'è una lista di nomi che non possiamo usare nei nostri nomi di modelli e un elenco di nomi di campi?Nomi riservati con i modelli ActiveRecord

+5

[questo sito ne ha alcuni] (http://en.wikibooks.org/wiki/Ruby_on_Rails/ActiveRecord/Naming) Ma io rifugio Sono stato in grado di trovare un elenco completo. Potrebbe essere qualcosa di interessante per iniziare una wiki. – Magicmarkker

risposta

42

Ecco un paio di risorse per iniziare:

  1. Rails reserved words. Questo sembra essere abbastanza aggiornato, aggiornato da febbraio 2010. Va anche oltre le rotaie e elenca alcuni conflitti di denominazione comuni con SQL.deceduto
  2. Reserved words in rails. Qui vive un'applicazione di heroku con una tabella ricercabile di parole di guide riservate. Il contenuto di questo sembra essere gestito dall'utente, quindi chiunque abbia un account può aggiungere una nuova parola.
+2

oh uomo ... ora sembra che ogni parola sia stata presa! Devo nominare i miei modelli con prefisso o suffisso; 'ScottCube' o' Cube2'! –

+1

Qual è il significato di "Original Rails Wiki" in questa tabella? –

2

Aprire una console rotaie e un tipo MyModel.methods

Tutti i metodi elencati sono parole riservate.

+4

Ciò può portare a falsi positivi. I metodi esistenti e i nomi delle colonne appariranno come prima pagina, assumendo che abbiano usato sempre una parola riservata. – Substantial

+0

@gg_s È facile gestirlo se si dispone di un altro modello senza la colonna discutibile – MCB

+1

oppure semplicemente ActiveRecord :: Base.methods ... –

5

Nome colonna type è anche riservato e non viene visualizzato nell'elenco di MyModel.methods!

The single-table inheritance mechanism failed to locate the subclass: 'f'. This error is raised because the column 'type' is reserved for storing the class in case of inheritance. Please rename this column if you didn't intend it to be used for storing the inheritance class or overwrite Project.inheritance_column to use another column for that information.

Qualcuno ha esperienza con nomi come category, class, transaction, group, ecc? Tutti mi vengono in mente quando sto categorizzando i dati all'interno del mio db ....

Problemi correlati