Domanda

Sin dall'inizio, Rails ha avuto problemi con i modelli con spaziatura dei nomi. Col passare del tempo, praticamente tutti hanno rinunciato a usarlo. Me stesso incluso.

Con Rails 2.3 in uscita, vorrei un aggiornamento sulla situazione. Le domande specifiche che ho in mente sono:

  • prima di tutto, è bello andare?
  • denominazione delle tabelle, quale regola seguire?
  • associazioni, come dichiararle con la minima verbosità? come nominare le colonne chiave esterna?
  • auto-richiesto, funziona se metti i file del modello in un sottodir corrispondente allo spazio dei nomi? oppure, come nominare e dove posizionare i file?
  • generazione, il generatore di modelli gestisce correttamente e correttamente gli spazi dei nomi?
  • generazione, che ne dici del generatore di scaffold, che include controller?
  • eventuali incompatibilità / stranezze di cui si dovrebbe essere a conoscenza?
È stato utile?

Soluzione

La migliore scrittura che ho visto sul problema è di Strettamente non tipizzato . Per quanto ne so 2.3 non ha risolto alcun problema, il che significa che sono ancora inaffidabili.

Altri suggerimenti

Di recente abbiamo avuto un grande dibattito al riguardo all'interno della nostra azienda. Penso che alla fine della giornata, abbiamo pensato che se non fosse possibile utilizzare le tabelle dello spazio dei nomi all'interno di un database, non ha senso utilizzare lo spazio dei nomi dei modelli. Abbiamo deciso di aggiungere un prefisso ai nostri modelli (Utente, UserAddress, UserEmailAddresses) e di inserirli nella directory degli utenti, quindi utilizzando:

config.load_paths << "#{RAILS_ROOT}/app/models/users"

per caricare i modelli. Per controllare la verbosità nei nostri modelli, lo facciamo frequentemente:

has_many :addresses, :class_name => "UserAddress"

Durante la generazione, lo creiamo come se non ci fosse spazio dei nomi (script / genera il modello UserAddress) quindi lo copiamo manualmente nella directory dell'utente.

scrollata di spalle. Immagino che alla fine tutto ciò che ti dà davvero sia una struttura di directory più pulita, che in realtà è più un problema per un utente VIM come me, ma piacevole per TextMaters.

Vorrei ancora starne lontano. Qualsiasi cosa ottenuta (che non sono sicuro di cosa sarebbe onestamente) andrebbe sicuramente persa se consideri la seccatura e la perdita di brevità e chiarezza nel tuo codice.

La mia ultima app ha 87 risorse e include funzionalità amministrative ovunque. Non vedo la necessità di spazio per i nomi, IMHO.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top