¿Cómo especifico explícitamente la asignación de nombre de tabla de un modelo en Rails?


230

Tengo una clase Modelo llamada Países y quiero que se asigne a una tabla DB llamada 'cc'.

¿Cómo se hace eso en Rails?

Respuestas:


427

Rieles> = 3.2 (incluidos los rieles 4+ y 5+):

class Countries < ActiveRecord::Base
  self.table_name = "cc"
end

Rieles <= 3.1:

class Countries < ActiveRecord::Base
  self.set_table_name "cc"
  ...
end

¿Es la mejor práctica especificar table_namepara cada modelo?
Sung Cho

10
@MikeC - No. Es la mejor manera de ser lo más breve posible y solo escribir código cuando sobrescribe las convenciones.
toobulkeh

@SungWonCho No es la mejor práctica especificar el nombre de la tabla en cada modelo, solo use esto cuando necesite un nombre diferente para la tabla
Thorin

137
class Countries < ActiveRecord::Base
    self.table_name = "cc"
end

En Rails 3.x esta es la forma de especificar el nombre de la tabla.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.