Модель с использованием модулей в приложении Rails

У меня есть модель, которая требует загрузки внешних данных из вспомогательного источника. Существует ряд веб-сервисов, из которых моя модель может извлекать данные (с возможностью замены), но я не хочу создавать код, который затруднит изменение сервисов (затраты значительно различаются в зависимости от переменного и фиксированного использования, и, вероятно, он изменится. потребуется).

Я хотел бы создать драйвер для взаимодействия (а затем создать дополнительные настраиваемые драйверы, если служба требует переключения). К сожалению, из-за тесной связи драйвера и модели нет смысла извлекать код в плагин или гем. Я извлек весь код в модуль (см. Пример), и в настоящее время объявлен код над моей моделью.

module Synchronize
  def refresh
    self.attributes = ...
    self.save
  end
end

class Data < ActiveRecord::Base
  include Synchronize
end

Есть ли в Rails (3.0.0) соглашение о хранении модулей, тесно связанных с моделями? Следует ли мне использовать для этого плагин? Связано ли это с каталогом app / helpers? Если нет, то где лучше всего хранить код? Спасибо!

13
задан Kevin Sylvestre 24 September 2010 в 18:33
поделиться