使用rails content_tag helper使用html5数据属性的最佳方法是什么?
这个问题当然是,ruby符号不喜欢连字符。 所以像这样的东西显然不会工作:
content_tag(:div, "Some Text", :id => "foo", :data-data_attr => some_variable)
一种select是使用一个string而不是一个符号:
content_tag(:div, "Some Text", :id => "foo", 'data-data_attr' => some_variable)
或者我可以插入:
"<div id='foo' data-data_attr='#{some_variable}'>Some Text</div>".html_safe
我喜欢后者,但都看起来有点毛病。 任何人都知道更好的方法?
Rails 3.1附带内置的帮助器:
http://api.rubyonrails.org/classes/ActionView/Helpers/TagHelper.html#method-i-tag
例如,
tag("div", :data => {:name => 'Stephen', :city_state => %w(Chicago IL)}) # => <div data-name="Stephen" data-city-state="["Chicago","IL"]" />
你有没有试过用符号引号? 就像是:
:"data-foo" => :bar
一个帮手不是一个坏主意,但是对于语法来说,我本来就是一个混乱的人,似乎有些过火了。 我想没有什么内置的铁轨,这是我所希望的。 我只是用这个:
content_tag(:div, "Some Text", :id => "foo", 'data-data_attr' => some_variable)
JQuery Air(codeschool.com)级别1,示例1
Codeschool /平台无关的版本
<section id="tabs"> <ul> <li><a href="#2012-09-27" data-flights="6">Sep 27</a></li> <li><a href="#2012-09-28" data-flights="5">Sep 28</a></li> <li><a href="#2012-09-29" data-flights="5">Sep 29</a></li> </ul> </section>
Rails版本
<section id="tabs"> <ul> <li><%= content_tag(:a, "Sep 27",:href=> "#2012-09-27", :data => { :flights => "6" } ) %></li> <li><%= content_tag(:a, "Sep 28",:href=> "#2012-09-28", :data => { :flights => "5" } ) %></li> <li><%= content_tag(:a, "Sep 29",:href=> "#2012-09-29", :data => { :flights => "5" } ) %></li> </ul> </section>
你可以随时创build你自己的帮手function,然后你就可以写
<%= div_data_tag the_id, some_text, some_data %>