rails actionview:如果收到 nil 或其他内容,如何 "not show" 属性

rails actionview: How to "not show" attributes if receiving nil or something else

有没有一种简单的方法可以删除 tagcontent_tag 助手的选项属性?

<%= content_tag :div, content, {
  class: 'content',
  style: styles_hash.map{|x| "#{x[0].underscore.dasherize}: #{x[1]}"}.join('; '),
  data: {
    hyperlink: (hyperlink if hyperlink.present?)
  }
} %>

在这个例子中,我想知道如何删除 data-hyperlink。即使我抛出 nilfalse,它仍然分别显示为 data-hyperlink="null"data-hyperlink="false"。如果不存在,我需要它不完全显示。

我得到了这样的解决方案,但我想知道是否有更好的解决方案,或者在 data 属性中?

<%= content_tag :div, content, {
  class: 'content',
  style: styles_hash.map{|x| "#{x[0].underscore.dasherize}: #{x[1]}"}.join('; '),
  'data-hyperlink' => (hyperlink if hyperlink.present?)
} %>