![]() |
[Rails] validates_uniqueness_of ne renvoie pas de message mais écrase l'ancienne donnée - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [Rails] validates_uniqueness_of ne renvoie pas de message mais écrase l'ancienne donnée (/showthread.php?tid=5716) |
[Rails] validates_uniqueness_of ne renvoie pas de message mais écrase l'ancienne donnée - Maz - 29-09-2011 Bonsoir, il ne m'en a pas fallu beaucoup de temps pour être confronté à un nouveau problème. J'aimerais limité le champs d'un de mes modèle pour qu'il soit unique, j'ai cherché et suis tombé sur "validates_uniqueness_of, j'ai donc tout fait comme il le fallait, ma migration contient la ligne:
Et mon modèle:
Et ça fonctionnes... il n'y a qu'un seul champs de chaque "name", mais c'est parce qu'à chaque fois, si le name est déjà pris, il est écrasé! RE: [Rails]validates_uniqueness_of ne renvoi pas de message mais écrase l'ancienne donnée - Sephi-Chan - 29-09-2011 La contrainte d'unicité au niveau de la table n'est pas indispensable, bien qu'elle soit une garantie (Rails ne pouvant t'offrir cette garantie absolue). En revanche, le comportement que tu décris n'est pas cohérent. De plus, la batterie de tests de Rails est conséquente et un tel comportement ne serait jamais passé. Exemple dans la console Rails :
Tu dois faire une erreur ailleurs. Effectue le même test que moi dans une console Rails et montre-nous le résultat. RE: [Rails] validates_uniqueness_of ne renvoie pas de message mais écrase l'ancienne donnée - Viciousity - 30-09-2011 Je suis d'accord avec Sephi, j'ai beaucoup de validations d'unicité et jamais ton problème :S Par contre je serais de toi, j'utiliserais les validateurs comprimés du genre :
RE: [Rails] validates_uniqueness_of ne renvoie pas de message mais écrase l'ancienne donnée - popayan - 30-09-2011 Pareil, jamais eu ce comportement! par contre, comme on m'a dit d'utiliser les "validates_uniqueness_of", "validates_presence_of" etc..., j'aimerais avoir l'avis de Sephi (même si je pense que les 2 méthodes sont aussi bonnes) RE: [Rails] validates_uniqueness_of ne renvoie pas de message mais écrase l'ancienne donnée - Sephi-Chan - 30-09-2011 Tu peux utiliser indifféremment la nouvelle forme de validation (validates) ou l'ancienne (validates_*). L'ancienne n'est pas dépreciée, c'est juste une question de préférence. Si tu dois valider la présence de plusieurs attributs et que parmi ces attributs certains n'ont pas d'autres validateurs, c'est plus court d'opter pour l'ancienne forme. Tu peux même les mélanger sans problème, par exemple :
Ici on aurait pu mettre une clé presence à true, mais c'est plus simple de profiter du validates_presences_of. ![]() RE: [Rails] validates_uniqueness_of ne renvoie pas de message mais écrase l'ancienne donnée - Maz - 30-09-2011 Ok. Je go suicide sur ce coup là. J'ai fait les tests: ça fonctionnes comme Sephi-chan J'ai regarder le serveur rails pendant que j'exécutais mes pages et j'ai remarquer qu'il y avait un DELETE qui se faisait o_o: j'avais oublié un last_created_city.destroy dont je m'étais servis pour débugger... Au moins on auras eu le droit à quelques éclaircissements sur les fonctions de validations... Je tâcherais à ce que celà ne se produises plus... RE: [Rails] validates_uniqueness_of ne renvoie pas de message mais écrase l'ancienne donnée - Sephi-Chan - 30-09-2011 L'abus du forum est dangereux pour la santé. Créer des sujets avec modérations et après avoir fait quelques tests et recherches. ![]() RE: [Rails] validates_uniqueness_of ne renvoie pas de message mais écrase l'ancienne donnée - Maz - 30-09-2011 Bah en fait je conaissais pas la console rails... RE: [Rails] validates_uniqueness_of ne renvoie pas de message mais écrase l'ancienne donnée - Sephi-Chan - 30-09-2011 Ça n'aura pas été inutile alors ! ![]() |