rails content_tag add attributes

rails的helper content_tag是用來產生html element的
一般是這樣使用

content_tag(:div , class:"MY_CLASS")

如果要給content_tag加上attributes的話

content_tag(:div , class:"my_CLASS",my_attr:true)

可是如果要加入類似html5的data-*或是aria-*屬性的話就要不能寫
data-alert:true(X)
要寫成
data: { alert: true}(O)
完整的是

content_tag(:div , class:"MY_CLASS",data:{alert:true})

如果data屬性有到第三層的話像是bootstrap dropdown裡有個data-close-others的屬性,這時候如果寫成

content_tag(:div , class:"MY_CLASS",data:{close:{others:"true"}})

就會變成data-close="{"others":"true"}",但其實我是要data-close-others="true"才對,所以要改寫成

content_tag(:div , class:"MY_CLASS",data-close-others:"true")

複數的data屬性也可以寫成

content_tag(:div , class:"MY_CLASS",data:{alert:true,toggle:"dropdown",hover:"dropdown"},data-close-others:"true")
comments powered by Disqus