Вместо синтаксиса acts_as_foo
**, я играю идею с расширением ActiveSensor::Base < ActiveRecord::Base
, а затем расширяет этот базовый класс всеми методами ошибок/валидности/класса/whizbangs.pros/cons of :: Base class (а не act_as_foo)
Предлагаемый: # active_sensor.rb камень
module ActiveSensor
include ActiveRecord
autoload :VERSION, 'active_sensor/version'
autoload :ActiveSensorError, 'active_sensor/base'
autoload :Base, 'active_sensor/base'
autoload :Validations, 'active_sensor/validations'
end
Pros: Я думаю, что это выглядит чище. Архитектура и класс наращивания эмулирует ActiveRecord У меня много подклассов продолжается ... хочу проверить, является ли компонент аппаратным, используя метод :is_a?
.
Минусы: держит дополнительный слой класса наследования в памяти ... никогда не используется самостоятельно не очень обычные (только видели 1 другие рельсы плагин сделать это)
Любые советы? Создает ли новый класс: Base просто тупой? Если да, то почему?
** Модель acts_as_foo
общий для Rails драгоценных камней. Этот метод класса добавляется к каждому объекту AR, который загружает и расширяет методы класса и экземпляра при загрузке класса.