2010-07-08 40 views

回答

11

那么,它的大部分类型智能约定配置有一些非常实际的好处。 ;-)

在惯例不起作用的地方,就像你的情况一样,(可能 - 至少,我总是找到一个......)解决它的方法。对于遗留模式,有一些可能会立即想起。

  • 在您的遗留数据库中创建单表视图,重映射列以避免AR的常规名称。如果您对数据库没有CREATE VIEW权限,或者数据库没有视图,则用处不大;
  • 重写使用set_inheritance_column使用:type作为STI指示器,从而

class LegacyValue < ActiveRecord::Base 
    set_inheritance_column 'does_not_have_one' 
end 
+0

使用set_inheritance_column:这是你最好的选择。 – 2010-07-08 13:13:47

2

在Rails 4 set_inheritance_column被弃用,self.inheritance_column应该使用:

class LegacyValue < ActiveRecord::Base 
    self.inheritance_column = 'does_not_have_one' 
end