2009-10-30 11 views
13

En una aplicación que estoy construyendo estoy almacenando un archivo XML en mi base de datos utilizando la asociación acts_as_tree. Me gustaría llamar a la clase XMLElement, pero esto arroja raíles ya que el uso de mayúsculas no es estándar. Está buscando XMLElement del nombre de archivo xml_element.rb. Traté de cambiar el nombre del archivo a x_m_l_element.rb para intentar engañarlo y hacerle creer que "XML" era realmente dos palabras, pero tampoco funcionó. ¿Debo aspirar y usar el nombre XmlElement en lugar del más ideal XMLElement, o hay una forma mejor de solucionar este problema?Rails nombres ortodoxos de modelos con abreviaturas

Respuesta

10

Convención sobre la configuración man. Suck up.

+0

Pensé que era la solución más fácil, pero no sabía si había una forma de configurarla. Por ejemplo, Rails le permite configurar el nombre de la tabla de la base de datos si tiene un nombre que prefiera, así que pensó que podría haber una manera de configurar esto también. Supongo que no? –

+0

Consulte la respuesta a continuación, puede usar los inflectors de ActiveSupport para esto –

2

Sí, debería usar XmlElement.

No solo para este ejemplo sino también para cada aspecto de una aplicación, nunca vale la pena desviarse de las convenciones. Hay tanta 'magia' bajo la capucha de Rails que simplemente no vale la pena.

25

Agregue lo siguiente a config/initializers/inflections.rb.

ActiveSupport::Inflector.inflections(:en) do |inflect| 
    inflect.acronym 'XML' 
end 

Ahora corriendo $ rails g model XMLElement… creará una clase llamada XMLElement en un archivo llamado xml_element.rb y una tabla asociada xml_elements.

Cuestiones relacionadas