Problem polega oczywiście na tym, że symbole rubinowe nie lubią myślników. Więc coś takiego oczywiście nie zadziała:
content_tag(:div, "Some Text", :id => "foo", :data-data_attr => some_variable)
Jedną z opcji jest użycie łańcucha zamiast symbolu:
content_tag(:div, "Some Text", :id => "foo", 'data-data_attr' => some_variable)
Albo mógłbym po prostu interpolować:
"<div id='foo' data-data_attr='#{some_variable}'>Some Text</div>".html_safe
Wolę trochę później, ale oba wydają się trochę obrzydliwe. Czy ktoś zna lepszy sposób?