Rails双引号总是被转义

时间:2012-04-01 23:16:43

标签: ruby-on-rails ruby

当我遇到这个问题时,我正在为我的博客配置语法突出显示。 '''总是被转义......这是我的代码:

# in application_helper.rb
def coderay(content)
  defaults = {...}      

  content.gsub!(/\<pre\>\<code class=\"(.+?)\"\>(.+?)\<\/code\><\/pre\>/m) do
    CodeRay.scan($2, $1).div(defaults)
  end
end

def markdown(text)
  options = {...}    

  renderer = Redcarpet::Markdown.new(Redcarpet::Render::HTML, options)
  coderay(renderer.render(text)).html_safe
end

#in view file
...
<%= markdown @post.body %>
...

一切正常,但双引号(“)总是被转义。试过很多方法,但都没有用。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

最后,我使用了一种不那么“优雅”的方式来解决这个问题。以防其他人遇到这个问题。

我创建了一个新方法如下:

  def unescape(content)
    content.gsub!(/(&quot;|&#39;|&amp;|&lt;|&gt;)/) do
      case $1
        when "&quot;"
          '"'
        when "&#39;"
          "'"
        when "&amp;"
          "&"
        when "&lt;"
          "<"
        when "&gt;"
          ">"
      end
    end
  end

通常,这种方法只是做一些unescape。

在做CodeRay.scan($ 2,$ 1).div(默认值)之前,我使用unescape方法来取消$ 2,然后一切都很顺利。

如果有人知道更好的方法,请告诉我。

相关问题