Rails / Slim_Dynamic数据标签属性

问题描述

https://github.com/slim-template/slim-rails/issues/168

如何在erb以下将其转换为苗条?

ERB代码

<div class="click" <%= love_type ? "data-review=#{target}" : "data-recommend=#{target}" %>
                                   data-logined='<%= sth%>'></div>

我尝试过...

.click[data-logined="#{sth}"
      love_type ? data-review="#{target}" : data-recommend="#{target}"]

.click data-logined="#{sth}" love_type ? data-review="#{target}" : data-recommend="#{target}"

但是不行...

我该如何编写简单的DRY代码

解决方法

尝试一下:

.click *{ data: { logined: "#{sth}",review: "#{love_type ? target : nil }",recommend:"#{love_type ? nil : target}" } }

或者您可以使用辅助方法将data作为哈希返回:

.click *{ data: as_a_hash(love_type) }

helper_method:

def as_a_hash(args)
  { logined: "#{sth}",review: "#{args ? target : nil }",recommend:"#{args ? nil : target}" }
end