8

そのオブジェクトの任意のフィールドで無効な文字/HTML をチェックできるように、オブジェクトを文字列に変換する必要がある状況にあります。

これがスパムチェックのための私の機能です

def seems_spam?(str)
   flag = str.match(/<.*>/m) || str.match(/http/) || str.match(/href=/)
   Rails.logger.info "** was spam #{flag}"
   flag
end

このメソッドは文字列を使用して間違ったデータを探しますが、オブジェクトを文字列に変換してこのメ​​ソッドに渡す方法がわかりません。私はこれを試しました

@request = Request
spam = seems_spam?(@request.to_s)

ガイドしてください

ありがとう

4

2 に答える 2

1

Objectクラス内に「to_s」メソッドを作成する必要があります。このメソッドでは、オブジェクトのすべてのフィールドを循環して、それらを1つの文字列に収集します。

次のようになります。

def to_s
  attributes.each_with_object("") do |attribute, result|
    result << "#{attribute[1].to_s} "
  end
end

属性変数は、フィールドの名前とフィールドの値を含む配列です-[id、1]

呼び出しは、スパムをチェックできる@object.to_sような文字列で行われます。"100 555-2342 machete "

于 2012-09-10T08:03:09.667 に答える