"title max word length" の大きな値がサーバーエラーを引き起こします。

  • title max word length2000000000 に設定します
  • トピックを作成しようとします
  • 500 エラーが発生します
  • トピックは作成できません
RegexpError (too big number for repeat range: /\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'

先週に導入されました。最大値は 100000 です。

「いいね!」 2

現在、max topic title length は 255 文字に制限されているようですが、title max word length も同様の制限を持つべきでしょうか?

タイトルの最大単語数制限を 0 に設定して(非常に高い値ではなく)解除できると考えていましたが、実際には別のバグが明らかになりました。現在 0 を受け付けますが、チェックは無効にならず、どのタイトルも無効になるためトピックを作成できなくなります。

もちろん、このバグを表面化させたコミットを元に戻すことは可能ですが、いずれにせよ title max word length には何らかの検証(例:[1, 255])が必要だと思われますか?

「いいね!」 2

title_max_word_length を [1, 255] に制限して試してみました。

「いいね!」 1

人々がチェックを無効にしようとしてこれを0に設定していた可能性があるため、1ではなく255に移行する方が良いのではないでしょうか?:thinking:

反対はしませんが…その場合トピックが作成できなくなるため、意図せず0に設定されているフォーラムはないと思います。すでに元に戻されている可能性が高いです。

「いいね!」 2

本当ですね!コメントは無視してください!