0

Il s'agit principalement d'une question de modèle de conception. J'ai un type de modèle que je vais obtenir les données pour les créer à partir de plusieurs sources. Ainsi, par exemple, un enregistrement peut être créé à partir d'une API où un autre est créé via un balayage d'écran avec Nokogiri.Création du même modèle à partir de plusieurs sources de données

Mon problème réside dans la meilleure façon d'extraire ces différentes sources de données. En ce moment je construis des classes de lib qui retournent le même hachage que j'utilise alors pour placer les attributs du modèle. Mais je me demande si ce n'est pas plus un cas d'utilisation des ITS. Ou s'il y a une autre façon de faire cela, je n'y pense pas.

Répondre

0

Je pense que votre décision de conception dépend en grande partie sur les attributs qui doivent être enregistrés . À partir de votre description, il semble que vous ayez un modèle avec plusieurs sources de données, mais qui stockerait les mêmes attributs indépendamment de la source. Dans ce cas, la STI semble être exagérée. Lorsque vous récupérez une ligne de la table, est-ce important que la source soit l'API ou le scraper d'écran? Si ce n'est pas le cas, vous pouvez simplement définir des méthodes séparées pour chaque source de données et utiliser la méthode appropriée dans le contrôleur.

@instance = MyModel.new(:datasource=>"API")` 

Je dirais que ne vous inquiétez pas sur l'héritage (ou le mélange dans le code de modules), sauf si vous avez vraiment besoin. Il y a quelques pièges - STI n'est pas entièrement supporté par certaines gemmes/plugins, par exemple.

Questions connexes