Dans mon application rails, je veux valider une entrée sur un champ de chaîne contenant un nombre quelconque de mots-clés (qui pourraient être plus d'un mot en langage naturel (par exemple, "numéro de document")). Pour reconnaître les mots-clés individuels, je les saisis séparés par ", " (ou les obtenir à la fin de la chaîne).
Pour cela j'utilise
validates :keywords, presence: true, format: { with: /((\w+\s?-?\w+)(,|\z))/i, message: "veuillez entrer des mots-clés dans le bon format"}
Il devrait autoriser l'attribut keywords
(chaine de caractères) à contenir : "mot1, mot2, mot3 mot4, mot5-mot6"
Il ne devrait pas autoriser l'utilisation d'un autre motif. Par exemple, pas "mot1; mot2;" Il autorise incorrectement "mot1; mot2"
Sur rubular, cette regex fonctionne ; pourtant dans mon application rails, il autorise par exemple "mot1; mot2" ou "mot3; mot-"
où est mon erreur (je dois dire que je suis débutant en Ruby et en regex) ?