Une grande valeur pour "longueur maximale des mots du titre" cause une erreur serveur

  • Définir title max word length sur 2000000000
  • Essayer de créer un sujet
  • Obtenir une erreur 500
  • Les sujets ne peuvent pas être créés
RegexpError (trop grand nombre pour la plage de répétition : /\\p{Alnum}{2000000001,}/)
lib/text_sentinel.rb:62:in `seems_unpretentious?'
lib/text_sentinel.rb:45:in `valid?'
lib/validators/quality_title_validator.rb:12:in `validate_each'
lib/topic_creator.rb:24:in `valid?'
lib/has_errors.rb:13:in `validate_child'
lib/post_creator.rb:133:in `valid?'
lib/post_creator.rb:187:in `create'
lib/new_post_manager.rb:318:in `perform_create_post'
lib/new_post_manager.rb:252:in `perform'
app/controllers/posts_controller.rb:215:in `create'

Introduit la semaine dernière. Le maximum est 100000.

2 « J'aime »

Actuellement, la longueur maximale du titre du sujet semble être limitée à 255, donc peut-être que la longueur maximale de mots du titre devrait également avoir cette limite ?

Je pensais qu’on pourrait supprimer la limite de longueur maximale de mots du titre en la définissant à 0 (au lieu d’utiliser une valeur très élevée), mais cela a en fait révélé un bug distinct : elle accepte actuellement 0, mais cela ne désactive pas la vérification, au lieu de cela, il devient impossible de créer un sujet car aucun titre n’est valide :

Il est bien sûr possible de revenir sur le commit qui a mis cela en évidence, mais quoi qu’il en soit, il semble que la longueur maximale de mots du titre nécessite une validation (par exemple, [1, 255]) ?

2 « J'aime »

J’ai essayé cela en limitant title_max_word_length à [1, 255].

1 « J'aime »

Étant donné que les gens auraient pu le définir sur 0 pour tenter de désactiver la vérification, il serait peut-être préférable de migrer la valeur 0 vers 255 au lieu de 1, qu’en pensez-vous ? :thinking:

Je ne m’y oppose pas… bien que je doute qu’il existe un forum où ce paramètre soit accidentellement réglé sur 0, car aucun sujet ne peut être créé à ce stade, il aurait donc probablement déjà été rétabli.

2 « J'aime »

C’est vrai ! Ignorez mon commentaire s’il vous plaît !