Tengo un modelo que requiere cargar datos externos desde una fuente auxiliar. Existe una cantidad de servicios web de los que mi modelo puede obtener los datos (intercambiables), pero no deseo crear un código que dificulte el cambio de servicios (los costos difieren significativamente en función del uso variable y fijo y es probable que cambie). será requerido).Modelo que usa módulos en la aplicación Rails
Me gustaría crear un controlador para realizar la interacción (y luego crear más controladores personalizados si el servicio requiere el cambio). Desafortunadamente, debido al estrecho acoplamiento del controlador y el modelo, no tiene sentido extraer el código en un complemento o gema. He extraído todo el código en un módulo (ver ejemplo), y actualmente tengo el código declarado sobre mi modelo.
module Synchronize
def refresh
self.attributes = ...
self.save
end
end
class Data < ActiveRecord::Base
include Synchronize
end
¿Tiene Rails (3.0.0) una convención para almacenar módulos estrechamente acoplados con los modelos? ¿Debo usar un complemento para hacer esto? ¿Está esto asociado con el directorio 'app/helpers'? Si no, ¿dónde está el lugar más apropiado para almacenar el código? ¡Gracias!