使用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="[&quot;Chicago&quot;,&quot;IL&quot;]" /> 

你有没有试过用符号引号? 就像是:

 :"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 %>