如何在Rails中显式指定Model的表名映射?

Era*_*mpf 223 ruby-on-rails

我有一个名为Countries的Model类,我希望它映射到名为'cc'的DB表.

如何在Rails中完成?

Zab*_*bba 413

Rails> = 3.2(包括Rails 4+和5+):

class Countries < ActiveRecord::Base
  self.table_name = "cc"
end
Run Code Online (Sandbox Code Playgroud)

Rails <= 3.1:

class Countries < ActiveRecord::Base
  self.set_table_name "cc"
  ...
end
Run Code Online (Sandbox Code Playgroud)

  • @MikeC - 不.这是轨道方式尽可能简短,只有在覆盖约定时才编写代码. (9认同)
  • 请注意,此分配忽略了“table_name_prefix”。如果您有一套,请使用 `self.table_name = "#{table_name_prefix}cc"` (2认同)

小智 136

class Countries < ActiveRecord::Base
    self.table_name = "cc"
end
Run Code Online (Sandbox Code Playgroud)

在Rails 3.x中,这是指定表名的方法.