¿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?

Eran Kampf
fuente

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
Zabba
fuente
¿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.

chelofm
fuente