1. ホーム
  2. ruby-on-rails

[解決済み] railsのcontent_tagヘルパーでhtml5のデータ属性を使用する最善の方法は?

2022-11-19 18:47:33

質問

もちろん問題は、rubyのシンボルはハイフンを好まないということです。ですから、このようなものは明らかにうまくいきません。

content_tag(:div, "Some Text", :id => "foo", :data-data_attr => some_variable)

シンボルではなく文字列を使うのも一つの方法です。

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;]" />