在Rails 3.2.x中覆盖json-ld的javascript_tag类型

时间:2016-06-27 14:52:38

标签: ruby-on-rails ruby-on-rails-3 json-ld

查看javascript_tag的基础代码可能无法实现,但有人知道是否可以覆盖Rails 3.2.2中的javascript_tag默认类型type="text/javascript"?或者可能没有很多janky代码?

我正在尝试做这样的事情,但我可以考虑其他选择。

javascript_tag type: 'application/ld+json' do
    some stuff here
end

2 个答案:

答案 0 :(得分:0)

深入研究源代码并在没有类型覆盖的情况下复制它的功能似乎可以解决问题。因此,不是javascript_tag块,而是执行此操作:

content_tag(:script, javascript_cdata_section(some_stuff_here), :type => 'application/ld+json')

答案 1 :(得分:0)

%script{type: "application/ld+json"}
 :plain
  {
    "@context": "http://schema.org",        
    "headline": "Headline",       
    "@type": "Article",
    "alternativeHeadline": "Alternative Headline}"
  }

我没有使用:javascript标记,而是使用%script过滤器,而是使用type来定义attribute method将类型定义为application/ld+jsonhttp://haml.info/docs/yardoc/file.REFERENCE.html#filters

:plain过滤器,它不解析过滤的文本。当您不希望以开头的行时,这对于没有HTML标签的大块文本很有用。或-要解析,请参阅文档http://haml.info/docs/yardoc/file.REFERENCE.html#attribute-methods