0

基本上我需要连接到另一个应用程序的数据库,我已经完成了连接config/database.yml,该数据库不是来自 rails 应用程序,所以对于初学者来说,表名不是复数形式,我还需要establish_connection将试图创建一个父类并从中继承其他类,但我就是做错了,一直抱怨父类没有表,如果我添加abstract_class到它,那么子模块也是抽象的-。 -

怎么能干一点

更新

这工作...

class QB < ActiveRecord::Base
  self.abstract_class = true
  establish_connection 'quickbooks'

  def self.pluralize_table_names
    false
  end
end

不太清楚为什么要这样设置复数表名,但它可以工作,感谢抽象类@zetetic 的提示

更新

在父类中使用它,更适合我的情况

def self.table_name
    self.name.gsub(/QB::/,'').downcase
end
4

1 回答 1

1

if i add abstract_class to it then the child modules are abstract as well

This should not be the case. self.abstract_class = true sets an instance variable in the class singleton, a 'class instance variable'. This is not shared by subclasses:

class A < ActiveRecord::Base
  self.abstract_class = true
end

class B < A; end

A.abstract_class # true
B.abstract_class # nil

This Martin Fowler blog post describes what is going on in more detail.

于 2012-08-07T03:37:51.857 回答