2012-08-05 15 views
9

Quiero crear un modelo llamado 'Archivo', pero es un nombre de modelo reservado es rieles. No puedo pensar en nada más sensato para llamar al modelo, por lo que me preguntaba si existe una forma estándar de tratar este problema, por ejemplo, agregar un prefijo o sufijo (_File, FileItem, etc.)Modelos con palabras clave reservadas

Respuesta

8

Este problema se aborda con modules:

módulos son una forma de agrupar juntos métodos, clases y constantes. Los módulos le ofrecen dos ventajas principales:

  1. Los módulos proporcionan un espacio de nombres y evitan conflictos de nombres.
  2. Los módulos implementan la función mixin.

[...] módulos

definir un espacio de nombres, una caja de arena en la que sus métodos y constantes pueden jugar sin tener que preocuparse de ser pisado por otros métodos y constantes.

En su caso:

module MyRailsApp 
    class File 
    ... 
    end 
end 

mediante el cual la clase File se utiliza como MyRailsApp::File. Esta es la solución típica en Ruby, en Ruby on Rails esto podría ser manejado de manera diferente, consulte las siguientes referencias para una discusión a fondo:

+0

¿Cómo se pone un modelo en una módulo en rieles? –

+0

@CameronMartin No es diferente de poner una clase en un módulo. –

+0

Puede crear modelos en módulos haciendo 'rails generate model modulename/modelname' ¿verdad? ¿Es mejor poner todos tus modelos en un módulo o elegir un nombre que no sea conflictivo? –

Cuestiones relacionadas