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?

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

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.