Rails/Slim_Dynamic 数据标签属性

Rails/Slim_Dynamic data tag attributes

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

如何将低于 erb 的值转换为 slim?

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}" } }

或者您可以使用辅助方法将 return 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