J'essaie de connaître les préoccupations.Rails 5, Préoccupations - peuvent-ils référencer une table de base de données?
La plupart des articles de blog et des exemples que je peux trouver les traitent dans le contexte du déplacement de méthodes de classe définies dans un modèle vers un référentiel commun. Je comprends cette partie.
Je ne comprends pas si des préoccupations peuvent être utilisées pour réduire la configuration des modèles associés. Par exemple, j'ai un modèle d'utilisateur et un modèle d'organisation. Chaque utilisateur et organisation aura une adresse.
Si l'adresse est un modèle, elle sera polymorphe et appartiendra à adresse. Ensuite, l'utilisateur et l'organisation auront chacun une adresse.
J'essaie de comprendre si je peux faire un problème d'adresse et ensuite l'inclure dans mes modèles d'utilisateur et d'organisation. Si oui, puis-je toujours avoir une table dans la base de données appelée adresse? Il n'est pas clair pour moi si je peux avoir la table db si je n'ai pas un modèle appelé adresse (dont je n'aurais pas besoin si j'ai utilisé le sous-dossier dans le dossier models pour définir l'adresse).
Vous devriez probablement créer le modèle si vous avez besoin d'avoir un accès d'une table db plutôt que d'avoir une préoccupation pour elle. Les soucis sont pour réduire la responsabilité supplémentaire que la classe n'est pas supposée avoir. Par exemple, supposons que vous ayez une classe de modèle: 'Product', vous devez maintenant créer une fonctionnalité d'exportation CSV pour tous vos produits présents dans db. Une façon est d'étendre cette fonctionnalité dans la classe de produit, ou de créer une classe de préoccupation distincte qui traite avec elle. Le souci est "S" dans SOLID, ce qui signifie que votre classe ne doit gérer qu'une seule responsabilité. Que faire si vous avez besoin d'exporter xls/json plus tard? – Surya
ok, merci pour cela. – Mel