Pregunta

Tengo una aplicación carriles de movimiento a lo largo bastante bien, pero el hecho de que yo estoy haciendo esto por mí mismo significa que algún pobre diablo es finalmente va a ver esto y decir: "¿Qué diablos estabas pensando? ¿Por qué te pones esto aquí?!?! "

¿Dónde está esa pobre alma lo siento va a esperar a ver una serie de clases que no son utilizados por otra cosa que una sola clase de modelo? Obviamente, podría tirar en the_model.rb junto con la clase themodel, pero esto puede expandirse más allá de las dos clases planificadas ...

pensé en lib, pero no es necesario que el desorden de la vista de todos el mundo ....

Gracias.

Mi predecesor que gracias.

¿Fue útil?

Solución

Déjelos en the_model.rb hasta que los necesite en más de un lugar. Si refactoriza innecesariamente, no estás haciendo la cosa más simple que podría funcionar. No vas a necesitar que .

En ese momento, el patrón general es crear un directorio para las "preocupaciones". Ver este weblog mensaje por Jamis Buck o éste por Peter Marklund para más información.

Otros consejos

En general: seguir las convenciones de nomenclatura rieles en la traducción de nombres de clases en ubicaciones del sistema de archivos. (Esto es: mantener a la clase FooHelper::Bar en foo_helper/bar.rb)

Puede hacer excepciones para las clases de ayuda pequeñas que sólo se utilizan una vez y mantenerlos en el mismo archivo que su modelo, pero los que debe haber excepciones. (Pero lo contrario también es cierto, no cree miles de una sola línea de archivos de una sola línea)

Use módulos y espacios de nombres de clase a su ventaja. Si usted tiene una clase de ayuda que sólo es utilizado por (y depende) su modelo, ponerlos en el espacio de nombres de la clase del modelo:

class TheModel::HelperClass
end

la ubicación del sistema de archivos sería app/models/the_model/helper_class.rb

Y algo que no depende de su modelo puede ser probablemente todavía namespaced

module Bar
  class Foo
  end
end

viviendo en bar/foo.rb, por supuesto

Es probable que no debe tener miedo de poner las cosas que no son modelos en lib - eso es lo que este directorio es de

preocupaciones , si bien son útiles, no son realmente el camino correcto a seguir, ya que es una manera de dividir un solo clase en varios archivos y usted no parece estar haciendo eso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top