У меня есть API класса, который вытягивает объекты из стороннего API и создает их в объекты, которые являются подклассами типа APIObject
. Подклассы APIObject
соответствуют именам объектов API, из которых я извлекаю:
User < APIObject
Account < APIObject
Я хотел бы определить метод класса в APIObject, который позволяет мне тянуть объекты с помощью стандартных Rails-аксессуаров:
user = User.find id
Я хотел бы, чтобы этот метод переводил этот вызов в вызов API следующим образом:
API::User::findById id
Я хотел бы получить доступ к имени подкласса APIObject (User
) с помощью self.class.name
и использовать его для вызова константы (API::User
), но я знаю, что API::self.class.name
не будет работать. Я мог бы переписать этот метод снова и снова для каждого подкласса, но, похоже, это возможно, если этого не сделать. Предложения?