回答

1

你不能做到這一點與助手。 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' => ''} %> 
+0

謝謝!我不敢相信這樣的事情太複雜了! – 2013-05-13 00:06:50

+0

我不確定「BOOLEAN_ATTRIBUTES.include?(key)」代表什麼用途。我最終刪除它,它的工作原理! – 2013-05-13 00:14:59