Расширить модель рельсов, используя другой класс - PullRequest
0 голосов
/ 25 мая 2011

Я пишу драгоценный камень, который я хочу расширить модель. Я попытался определить класс в моем драгоценном камне как:

class UserModel < ActiveRecord::Base

, а затем пользовательская модель как:

class User < Adauth::UserModel

Но это заставило Active Record выдать ошибку «таблица не найдена», так как она использовала UserModel, а не User для имени модели.

Я не могу указать имя модели, так как намерен, чтобы именованный генератор создал модель с Пользователем по умолчанию.

Я предполагаю, что невозможно наследовать от 2 классов / модулей в строке определения, так как бы мне импортировать все методы из Adauth :: UserModel в модель?

1 Ответ

3 голосов
/ 25 мая 2011

Я не знаю, является ли это лучшим решением для вашей проблемы, но вы можете попробовать использовать миксины.

Определите модуль UserModel всеми необходимыми вам методами.

module Adauth
  module UserModel
    # methods go here
  end
end

а затем, когда вы определяете свою модель:

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