Redcloth延伸与表情符号过滤器

时间:2012-02-28 08:47:05

标签: ruby-on-rails ruby-on-rails-3 emoticons

在简单的邮件系统中实现表情符号/笑脸的好方法是什么? 我穿着红布作为一种有价值的解决方案。

消息将保存在DB中,如;),:);( *就像这里描述的那样,但这已经过时了:http://flip.netzbeben.de/2008/07/smilies-in-rails-using-redcloth/我在安全等方面尝试对该解决方案发表任何评论?

更新: 创建了一个帮助方法,这个工作

  def emoticons(text)

emoticons = { ":)" => "<img src='/assets/emoticons/smile.gif' class='emoticon'>",
              ":(" => "<img src='/assets/emoticons/cry.gif' class='emoticon'>"
            }

[emoticons.keys, emoticons.values].transpose.each do |search, replace|
  text.gsub!(search, replace)
end

return raw text

有什么办法可以更好地改善这个?替换工作虽然

1 个答案:

答案 0 :(得分:1)

emoticons = {":)" => "[happy/]", ":(" => "[sad/]"}
text = "test :) :("
[emoticons.keys, emoticons.values].transpose.each do |search, replace|
  text.gsub!(search, replace)
end
p text

将输出

test [happy/] [sad/]

您可以使用gsub来获取HTML输出而不是伪BB代码