代码之家  ›  专栏  ›  技术社区  ›  jcnnghm

轨片过滤器?

  •  3
  • jcnnghm  · 技术社区  · 15 年前

    我已经做了一些搜索,并且还没有找到任何一种开源的针对Rails的跛行过滤器。这样的东西存在吗?我试图缩减用户生成的内容,特别是所有的大写字母、不恰当的大写字母、过多的感叹号和过多的粗体或斜体。

    2 回复  |  直到 15 年前
        1
  •  2
  •   jrhicks    15 年前

    这是红宝石 Bayesian Classifier 可以训练为阻止某些类型的内容。直接应用于你的问题需要一些创造力。

    它是一种商业服务,但是 SocialMod 值得一提。

        2
  •  2
  •   EmFi    15 年前

    我不知道任何现有的,但是在自定义验证中用一组正则表达式捕捉其中的大部分应该太难了。不恰当的大写字母是很难理解的,因为它们的名字和首字母缩写都是正确的。

    before_validation :filter_lameness
    
    def filter_lameness
      # reduce exclamation marks
        content.gsub!(/![!1]+/, "!")
      # Proper capitalization. 
        content.gsub!(/(\.\s*[a-z])/, $1.upcase) # capital starts sentence
        content.gsub!(/([A-Z]{5,})/, $1.capitalize) # lowercases all but first letter in a string of capitals. Minimum length 5.
      # etc...
        return true # needed in case the last gsub matches nothing, otherwise validation returns nil and will fail
    end
    

    就我个人而言,我很想追踪用户违反《时尚指南》的行为,并在足够多的违规行为后将其与记过徽章联系起来,以供公众羞辱。