rails 4在嵌套的内容标记中转义乱码html,

rails 4在嵌套的内容标记中转义乱码html,,html,ruby-on-rails,model-view-controller,Html,Ruby On Rails,Model View Controller,我有一个视图助手方法,我想返回一个嵌套的html字符串。第一层和第二层返回格式正确的html(这就是所谓的“转义html”吗?)。然而,第三种方法是产生乱码文本(这是“未转义的”吗?) 您可以尝试以下代码: def opening_times_meta(venue) content_tag(:div, nil, class: 'facility-type', itemscope: true, itemtype: 'http://schema.org/Event') do [

我有一个视图助手方法,我想返回一个嵌套的html字符串。第一层和第二层返回格式正确的html(这就是所谓的“转义html”吗?)。然而,第三种方法是产生乱码文本(这是“未转义的”吗?)

您可以尝试以下代码:

def opening_times_meta(venue)
  content_tag(:div, nil, class: 'facility-type', itemscope: true, itemtype: 'http://schema.org/Event') do
    [
      content_tag(:meta, nil, content: venue.title, itemprop: 'name' ),
      content_tag(:div, nil, class: 'hidden', itemprop: 'location', itemscope: true, itemtype: 'http://schema.org/Place') do
        [
          content_tag(:meta, nil, itemprop: 'sameAs', content: request.original_url),
          content_tag(:meta, nil, itemprop: 'name', content: venue.title),
          content_tag(:meta, nil, itemprop: 'address', content: venue.address)
        ].join.html_safe
      end
    ].join.html_safe
  end
end  

但我认为最好是将其移动到视图中。

尝试在内容标签的输出上调用
raw
,您能再清楚一点吗?
  def opening_times_meta(venue)
    content_tag(:div, nil, class: 'facility-type', itemscope: true, itemtype: 'http://schema.org/Event') do
      content_tag(:meta, nil, content: venue.title, itemprop: 'name' )
      content_tag(:div, nil, class: 'hidden', itemprop: 'location', itemscope: true, itemtype: 'http://schema.org/Place') do
        content_tag(:meta, nil, itemprop: 'sameAs', content: request.original_url).html_safe
        content_tag(:meta, nil, itemprop: 'name', content: venue.title)
        content_tag(:meta, nil, itemprop: 'address', content: venue.address)
      end
    end
  end
def opening_times_meta(venue)
  content_tag(:div, nil, class: 'facility-type', itemscope: true, itemtype: 'http://schema.org/Event') do
    [
      content_tag(:meta, nil, content: venue.title, itemprop: 'name' ),
      content_tag(:div, nil, class: 'hidden', itemprop: 'location', itemscope: true, itemtype: 'http://schema.org/Place') do
        [
          content_tag(:meta, nil, itemprop: 'sameAs', content: request.original_url),
          content_tag(:meta, nil, itemprop: 'name', content: venue.title),
          content_tag(:meta, nil, itemprop: 'address', content: venue.address)
        ].join.html_safe
      end
    ].join.html_safe
  end
end