Nokogiri

时间:2016-03-18 13:16:51

标签: ruby ruby-on-rails-3 nokogiri liquid liquid-layout

我们正在使用Nokogiri gem,我们从测试编辑器获得的html使用Nokogiri Nokogiri::HTML::fragment(html_text).to_html转换为正确的html标签并保存到数据库中。但是我们有一些液体标签,在渲染时会替换添加标签的地方的值。

例如。 html代码段

<body>
  <div>
    <p>
        Lorem ipsum dolor sit amet, consectetur adipisicing elit.Dolorem quam itaque, dolore esse labore dolorum inventore optio earum iure explicabo impedit eveniet perspiciatis nobis vero culpa aliquid, iusto saepe sunt.</p>
    <a href="http://some_link">{{some_link}}</a>
    <div>
      <a href="{{payment_link}}">{{payment_link}}</a>
    </div>
  </div>
</body>

一旦我们使用nokogiri将其转换为html标签,它就会获取url中的文本进行编码(href="{{payment_link}}")。有没有办法逃脱液体标签的URL编码?

这就是渲染和保存的html代码在db

中的样子

输出数据

<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do  eiusmod<br>\ntempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,<br>\nquis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo<br>\nconsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse<br>\ncillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non<br>\nproident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>\n\n<p> </p>\n\n<p><a href=\"http://%7B%7Bpayment_link%7D%7D\">{{payment_link}}</a></p>"

预期数据

<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do  eiusmod<br>\ntempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,<br>\nquis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo<br>\nconsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse<br>\ncillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non<br>\nproident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>\n\n<p> </p>\n\n<p><a href=\"{{payment_link}}">{{payment_link}}</a></p>

0 个答案:

没有答案