У меня есть модель, которая требует загрузки внешних данных из вспомогательного источника. Существует несколько веб-сервисов, в которых моя модель может извлекать данные из (swappable), но я не хочу создавать код, который затруднит изменение сервисов (затраты существенно различаются в зависимости от переменной и фиксированного использования и, скорее всего, изменяются потребуется).
Я хотел бы создать драйвер для взаимодействия (а затем создать дополнительные пользовательские драйверы, если служба требует переключения). К сожалению, из-за жесткой связи драйвера и модели нет смысла извлекать код в плагин или драгоценный камень. Я извлек весь код в модуль (см. Пример) и в настоящее время имеет код, указанный выше моей модели.
module Synchronize
def refresh
self.attributes = ...
self.save
end
end
class Data < ActiveRecord::Base
include Synchronize
end
Есть ли в Rails (3.0.0) соглашение для хранения модулей, тесно связанных с моделями? Должен ли я использовать плагин для этого? Связано ли это с каталогом "app/helpers"? Если нет, то где наиболее подходящее место для хранения кода? Спасибо!