如何向 中添加空属性<%= stylesheet_link_tag "application", :media => "all" %>
?
我想为其添加data-skrollr-stylesheet
emty 属性,因此输出 html 将是:
<link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" data-skrollr-stylesheet>
如何向 中添加空属性<%= stylesheet_link_tag "application", :media => "all" %>
?
我想为其添加data-skrollr-stylesheet
emty 属性,因此输出 html 将是:
<link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" data-skrollr-stylesheet>
你不能用助手做到这一点。stylesheet_link_tag
最终调用tag
,它使用以下方法呈现选项tag_options
:
def tag_options(options, escape = true)
unless options.blank?
attrs = []
options.each_pair do |key, value|
if key.to_s == 'data' && value.is_a?(Hash)
value.each do |k, v|
unless v.is_a?(String) || v.is_a?(Symbol) || v.is_a?(BigDecimal)
v = v.to_json
end
v = ERB::Util.html_escape(v) if escape
attrs << %(data-#{k.to_s.dasherize}="#{v}")
end
elsif BOOLEAN_ATTRIBUTES.include?(key)
attrs << %(#{key}="#{key}") if value
elsif !value.nil?
final_value = value.is_a?(Array) ? value.join(" ") : value
final_value = ERB::Util.html_escape(final_value) if escape
attrs << %(#{key}="#{final_value}")
end
end
" #{attrs.sort * ' '}".html_safe unless attrs.empty?
end
end
请注意,选项总是以一种key=value
方式呈现。
但是,您可以使用空字符串呈现属性:
<%= stylesheet_link_tag "application", :media => "all", :data => {'skrollr-stylesheet' => ''} %>