使用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 

我喜欢后者,但都看起来有点毛病。 任何人都知道更好的方法?

5 Solutions collect form web for “使用rails content_tag helper使用html5数据属性的最佳方法是什么?”

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 %> 
  • Ruby HAML的空属性
  • 使用ActiveRecord,是否有办法在after_update期间获取logging的旧值
  • 如何实现has_many:通过与Mongoid和mongodb的关系?
  • 在Ruby和/或Rails中定义自定义错误types的位置?
  • Rails 3:如何正确显示来自“textarea”的文本?
  • Rails:保留link_to中的GET查询string参数
  • 你如何删除一个ActiveRecord对象?
  • 如何开始使用Ruby on Rails的TDD?
  • 在rails中显示未完成的迁移
  • 有没有办法在Rails 3.1中检测用户代理?
  • Rails 4 favicon问题