ฉันจะระบุการแมปชื่อตารางของโมเดลใน Rails ได้อย่างไร


230

ฉันมีคลาส Model ชื่อประเทศและฉันต้องการให้แผนที่กับตาราง DB ชื่อ 'cc'

สิ่งนั้นทำใน Rails อย่างไร

คำตอบ:


427

Rails> = 3.2 (รวมถึง Rails 4+ และ 5+):

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

Rails <= 3.1:

class Countries < ActiveRecord::Base
  self.set_table_name "cc"
  ...
end

เป็นวิธีปฏิบัติที่ดีที่สุดในการระบุtable_nameสำหรับทุกรุ่นหรือไม่
Sung Cho

10
@MikeC - ไม่มันเป็นวิธีที่จะสรุปให้สั้นที่สุดเท่าที่จะเป็นไปได้และเขียนโค้ดเฉพาะเมื่อเขียนทับอนุสัญญา
toobulkeh

@SungWonCho มันไม่ปฏิบัติที่ดีที่สุดในการระบุชื่อตารางในแต่ละรุ่นเท่านั้นเพียงแค่ใช้นี้เมื่อคุณจำเป็นต้องมีชื่อที่แตกต่างกันสำหรับตาราง
ธ อริน

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

ใน Rails 3.x นี่เป็นวิธีการระบุชื่อตาราง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.