Как явно указать отображение имени таблицы модели в Rails?

230

У меня есть класс Model с именем «Страны», и я хочу, чтобы он отображался в таблицу БД с именем «cc».

Как это делается в Rails?

Эран Кампф
источник

Ответы:

427

Rails> = 3.2 (включая Rails 4+ и 5+):

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

Рельсы <= 3.1:

class Countries < ActiveRecord::Base
  self.set_table_name "cc"
  ...
end
Zabba
источник
Это лучшая практика table_nameдля каждой модели?
Сон Чо
10
@MikeC - Нет. Это рельсовый способ быть как можно более кратким и писать код только тогда, когда он перезаписывает соглашения.
toobulkeh
@SungWonCho Не рекомендуется указывать имя таблицы для каждой модели, используйте ее только тогда, когда вам нужно другое имя таблицы
Торин,
137
class Countries < ActiveRecord::Base
    self.table_name = "cc"
end

В Rails 3.x это способ указать имя таблицы.

chelofm
источник