Jak jawnie określić mapowanie nazwy modelu w Railsach?

230

Mam klasę Model o nazwie Kraje i chcę, aby mapowała się do tabeli DB o nazwie „cc”.

Jak to się robi w Railsach?

Eran Kampf
źródło

Odpowiedzi:

427

Szyny> = 3,2 (w tym szyny 4+ i 5+):

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

Szyny <= 3.1:

class Countries < ActiveRecord::Base
  self.set_table_name "cc"
  ...
end
Zabba
źródło
Czy najlepszą praktyką jest określenie table_namekażdego modelu?
Sung Cho
10
@MikeC - Nie. Jest to prosty sposób, aby być jak najkrótszym i pisać kod tylko wtedy, gdy zastąpi konwencje.
toobulkeh
@SungWonCho Nie jest najlepszą praktyką określanie nazwy tabeli w każdym modelu, używaj jej tylko wtedy, gdy potrzebujesz innej nazwy tabeli
Thorin
137
class Countries < ActiveRecord::Base
    self.table_name = "cc"
end

W Rails 3.x jest to sposób na określenie nazwy tabeli.

chelofm
źródło