• [^] # Re: Cahier des charges ?

    Posté par (Mastodon) . En réponse au journal Windev, qui es tu ?. Évalué à 2.

    Pour info, le code qui permet de stocker autant de champs que l'on veut dans une colonne "blob" de la table, ainsi que la gestion de la censure de certains champs en fonction d'une validation, le tout de manière complètement transparente au niveau du contrôleur ou de la vue, doit représenter une cinquantaine de lignes.

    Au final, ça permet de faire ça (en pseudo-code qui mélange le controleur et la vue):
    l = Livre.new
    l.prix = 10
    print l.titre
    print l.resume
    l.valider
    print l.resume

    En admettant que le champ résumé soit censurable, appeler "l.resume" avant validation va renvoyer un texte par défaut, et après validation, va renvoyer le résumé. Dans chaque cas, on ne sait pas si "prix", "titre" ou "resume" sont des colonnes de la table, ou des champs stockés dans un blob.

    Si "prix" est stocké dans un blob mais qu'on voudrait bien faire un tri en SQL dessus, alors on crée une colonne dans la table de Livre, on recopie les infos dedans, et on n'a rien à faire d'autre.

    Je n'essaye pas de frimer, hein, je dis juste ça pour montrer comment Ruby et Rails permettent de résoudre des problèmes non triviaux en peu de temps, et en gardant un code très propre. En particulier pour ces modifications là, je n'ai eu à modifier qu'un seul fichier, sur peu de lignes de code, pour rajouter la censure/validation partout, alors que ce n'était pas prévu au départ.