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