4

我正在尝试创建一个自定义的 ActiveRecord::Base,其中包含有关连接的其他元数据。我看到了两种解决方法:

1.) 从 ActiveRecord::Base 继承并在这个子类中添加方法和字段。

2.) 在我自己的类中封装一个 ActiveRecord::Base 对象

1 有各种问题,无法覆盖初始化,奇怪的问题似乎没有我添加的自定义方法等。

undefined method `set_profile' for #<Class:0xf041f0>

2 由于使用 ActiveRecord::Base.new 的问题,我无法弄清楚

我正在尝试创建一个通用的 ActiveRecord 类,我可以在该类上动态建立连接和 set_table_name(即没有这个 ActiveRecord::Base 表示的一个基础表),但我似乎找不到实现它的方法。有任何想法吗?

这有效:

  class MyTable < ActiveRecord::Base
    establish_connection $config['custom-db-config'];
    set_table_name 'MY_TABLE'
  end

但我需要一门课,我可以反复调用这些东西。

4

2 回答 2

5

不完全确定你为什么想要那个,但也许你可以试试这个?

module ActiveRecord
  class Base
    def self.your_method
      # implementation goes here
    end
  end
end

您需要保存此文件并将其放入config/intializers.

于 2012-11-07T07:56:51.270 回答
0

您还可以扩展 ActiveRecord::Base 类,以便动态添加那些可由继承 ActiveRecord::Base 的类直接调用的方法......许多acts_as插件都是根据这种做法定义和制作的......

于 2012-11-07T07:59:43.743 回答