使用另一个类扩展rails模型

时间:2011-05-25 14:21:15

标签: ruby-on-rails gem

我正在编写一个我希望扩展模型的gem。我尝试在我的gem中定义类:

class UserModel < ActiveRecord::Base

然后用户模型为:

class User < Adauth::UserModel

但这会导致Active Record抛出一个未找到表的错误,因为它使用的是UserModel而不是用户的模型名称。

我无法指定模型名称,因为我打算让命名生成器创建模型,默认使用User。

我假设不可能从定义行中的2个类/模块继承,那么如何将Adauth :: UserModel中的所有方法导入到模型中?

1 个答案:

答案 0 :(得分:3)

我不知道这是否是您问题的最佳解决方案,但您可以尝试使用mixins。

使用您想要的所有方法定义模块UserModel。

module Adauth
  module UserModel
    # methods go here
  end
end

然后在定义模型时:

class User < ActiveRecord::Base
  include Adauth::UserModel
end