Railsでモデルのテーブル名マッピングを明示的に指定するにはどうすればよいですか?


230

Countriesという名前のModelクラスがあり、それを「cc」というDBテーブルにマップします。

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各モデルでテーブル名を指定することはベストプラクティスではありません。テーブルに別の名前が必要な場合にのみ使用してください
Thorin

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

Rails 3.xでは、これがテーブル名を指定する方法です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.