在Ruby中将Class Object转换为字符串

Ani*_*l D 5 ruby-on-rails

我处于这样一种情况,我需要将一个Object转换为字符串,以便我可以检查该对象的任何字段中的无效字符/ HTML.

这是我的垃圾邮件检查功能

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

此方法使用字符串并查找错误的数据,但我不知道如何将对象转换为字符串并传递给此方法.我试过这个

@request = Request
spam = seems_spam?(@request.to_s)
Run Code Online (Sandbox Code Playgroud)

请指导

谢谢

kit*_*its 6

你可以试试 @request.inspect

这将显示可公开访问的字段

编辑:那么您是否尝试验证对象上的每个字段?

如果是这样,您可以获得字段和值对的散列,并将每个散列传递给您的方法.

@request.instance_values.each do |field, val|
  if seems_spam? val
  # handle spam
end
Run Code Online (Sandbox Code Playgroud)

如果你问的是实现to_s方法,Eugene已经回答了它.