Bagaimana cara menentukan secara eksplisit pemetaan nama-tabel Model di Rails?

230

Saya memiliki kelas Model yang disebut Negara dan saya ingin memetakan ke tabel DB yang disebut 'cc'.

Bagaimana itu dilakukan di Rails?

Eran Kampf
sumber

Jawaban:

427

Rails> = 3.2 (termasuk Rails 4+ dan 5+):

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

Rel <= 3.1:

class Countries < ActiveRecord::Base
  self.set_table_name "cc"
  ...
end
Zabba
sumber
Apakah ini praktik terbaik untuk ditentukan table_nameuntuk setiap model?
Sung Cho
10
@MikeC - Tidak. Ini cara rel untuk sesingkat mungkin dan hanya menulis kode ketika menimpa konvensi.
toobulkeh
@SungWonCho Ini bukan praktik terbaik untuk menentukan nama tabel pada masing-masing model, cukup gunakan ini ketika Anda membutuhkan nama yang berbeda untuk tabel
Thorin
137
class Countries < ActiveRecord::Base
    self.table_name = "cc"
end

Di Rails 3.x ini adalah cara untuk menentukan nama tabel.

chelofm
sumber