2008年8月19日火曜日

[Rails2.0.2]NGワードの検証

Railsの話は久しぶりですね。
さて、タイトルの通りNGワードの検証ですが
あまり使う機会がないかもしれないですね。。
しかし、投稿サイト等構築する際には必須なのかもしれません
変な事件も多いですからね

ということで今回はNGワードの検証をチャチャっとやってしまいましょう^-^

まず、NGワードをtxtファイルに書き出していきます。
この時既に正規表現として書いていきます。
例:
○○|○○○|○○○○

これをどこでもいいですがRAILS_ROOT内にng.txtとして保存します。
自分はdocに置いておくことにします。

次にモデルにvalidateを書いていきます。
投稿サイトを意識してArticleクラスとしましょう。

class Article < ActiveRecord::Base
  @@ng = Regexp.new(open("#{RAILS_ROOT}/doc/ng.txt").read)
  #ここに定数として正規表現(NGワード)を予め入れておきます。

  validates_each :title, :body do |record, attr, value|
    if value =~ @@ng
      record.errors.add attr, 'がNGワードを含んでいます。'
    end
  end
end

これで、題名や本文にNGワードが入ってるとエラーを返すようになります。
しゅんさつですねー^-^

0 件のコメント: