Domanda

Ho una applicazione rails in movimento lungo abbastanza bene, ma il fatto che lo sto facendo per me significa che qualche povero sod è, infine, andare a vedere questo e dire, "che Cosa diavolo stavi pensando?Perché hai messo questo qui?!?!"

Dove è che il povero, mi dispiace anima intenzione di aspettare per vedere una serie di classi che non sono utilizzati da qualcosa, ma un unico modello di classe?Ovviamente, non ho potuto chuck in the_model.rb con classe TheModel, ma questo potrebbe espandersi al di là di due classi...

Ho pensato di lib, ma non è necessario riempire tutti di vedere il mondo....

Grazie.

Il mio predecessore, grazie a te.

È stato utile?

Soluzione

Lasciarli in the_model.rb fino a quando hai bisogno di loro in più di un posto.Se si refactor inutilmente, non stai facendo la cosa più semplice che potrebbe funzionare. Non hai intenzione di bisogno.

A quel punto, lo schema generale è quello di creare una directory per "preoccupazioni".Vedere questo blog post by Jamis Buck o questo di Pietro Marklund per ulteriori informazioni.

Altri suggerimenti

In generale:seguire le Guide di convenzioni di denominazione, quando la traduzione di nomi di classe in posizioni sul filesystem.(che è:mantenere la classe FooHelper::Bar in foo_helper/bar.rb)

Si possono fare eccezioni per le piccole classi di supporto che vengono utilizzati solo una volta e tenerli nello stesso file come modello, ma quelli che dovrebbero essere eccezioni.(ma vale anche il contrario, di non creare una linea di migliaia di singola riga di un file)

Utilizzo di moduli e classe di spazi dei nomi a vostro vantaggio.Se si dispone di una classe di supporto che viene utilizzato solo da (e dipendente), il modello, messo in lo spazio dei nomi della classe del modello:

class TheModel::HelperClass
end

la posizione nel file system sarebbe app/models/the_model/helper_class.rb

E qualcosa che non dipende dal modello può ancora essere nel namespace

module Bar
  class Foo
  end
end

vivere in bar/foo.rb, naturalmente

Si dovrebbe, probabilmente, non abbiate paura di mettere le cose che non sono i modelli in lib -- che cosa questa directory è per

Direi preoccupazioni, sono utili , ma non sono davvero il modo giusto per andare, perché è un modo per dividere un singolo di classe in più file e non sembrano essere facendo.

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