当前位置: 首页 > 工具软件 > Microdata > 使用案例 >

rails html5,Rails 3&HTML 5 Microdata

孔俊友
2023-12-01

,如果你愿意重写一个私人Rails的方法,你可以达到你想要的结果。如果你这样做,当升级到更新私有方法逻辑的未来版本的Rails时,你冒着导致问题的风险。由于根据HTML5规范,

都是有效的,因此进行下面的更改几乎没有什么回报。我能想到的唯一原因就是如果你完全迷恋你的HTML代码风格。

正如Chris Heald所说,我们将itemscope添加到BOOLEAN_ATTRIBUTES,然后重写标签助手以输出不带值的布尔属性。 (以下tag_options方法是从Rails的修改/ ActionPack的3.0.7 - 未来的读者应该复制当代tag_options代码,然后让if BOOLEAN_ATTRIBUTES.include?(key)行之后的变化。)

module ActionView

module Helpers

module TagHelper

BOOLEAN_ATTRIBUTES.merge(['itemscope', :itemscope])

private

def tag_options(options, escape = true)

unless options.blank?

attrs = []

options.each_pair do |key, value|

if BOOLEAN_ATTRIBUTES.include?(key)

attrs << key.to_s if value

elsif !value.nil?

final_value = value.is_a?(Array) ? value.join(" ") : value

final_value = html_escape(final_value) if escape

attrs << %(#{key}="#{final_value}")

end

end

" #{attrs.sort * ' '}".html_safe unless attrs.empty?

end

end

end

end

end

现在,您可以更新您的看法:

content_tag(:div, "somecontent", :itemscope => true, :item_type => "http://data-vocabulary.org/Breadcrumb"

FWIW,我存储扩展到现有的类在例如lib/extensions/action_view.rb;这些扩展名由config/initializers/extensions.rb加载,其中包括:

Dir[File.join(Rails.root, 'lib', 'extensions', '*.rb')].each {|f| require f}

 类似资料:

相关阅读

相关文章

相关问答