実現したいこと
基本的なCRUD処理のできるアプリを作成しております。
たくさんのユーザーが入力したり、見たり、できることを考えると
不適切な単語が含まれている場合は保存できなくしたいです。
こちらで用意した不適切な単語やNGワードが入力されている場合エラーで返したいです。
やってみたこと
textカラムに対してバリデーションをかければ可能かと思い、
Model Memo.rb
class Memo < ApplicationRecord validates :text, exclusion: { in: %w(クソ野郎 糞野郎 ○○○○ ○○ ) } # 試したパターン1 validates :text, exclusion: { in: ['クソ野郎','糞野郎', '○○○○'] } # 試したパターン2 end
と上記のようにしました。
そうすると、どちらの場合も
入力が→「クソ野郎」などの完全一致の場合はエラーで返してくれますが、
入力が→「こいつはクソ野郎」のような途切れない文字列でその中に指定したい文字がある場合は許可されてしまいます。
exclusion は含まれていないかを確認してくれているのではないか?
ということは禁止したいワードが日本語でその書き方がマズイのかも?
と思いました
正規表現の書き方に疎く、質問させていただきました。
そもそもこの場合のバリデーション方法を検討違いをしている場合もありますが、併せてお助けください。
同じようなことを以前に質問されている方
https://teratail.com/questions/98830
の記事が見つかりましたが、詳しくわかりませんでした。
なので同じような質問になりますが、どなたかよろしくお願いします!
補足情報(FW/ツールのバージョンなど)
rails 5.1.4
ruby 2.5.8
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/10 07:14
2020/08/10 09:31