Как явно указать отображение имени таблицы модели в 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

Это лучшая практика table_nameдля каждой модели?
Сон Чо

10
@MikeC - Нет. Это рельсовый способ быть как можно более кратким и писать код только тогда, когда он перезаписывает соглашения.
toobulkeh

@SungWonCho Не рекомендуется указывать имя таблицы для каждой модели, используйте ее только тогда, когда вам нужно другое имя таблицы
Торин,

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.