更漂亮的ERB有条件地添加元素类

问题描述

我正在尝试学习如何编写更漂亮的ERB。我该如何格式化使其看起来更漂亮?

<% site.data.navigation.each { |item| %>
  <a href="<%= item.link %>"
      <% if page.url == item.link %>class="current"<% end %>>
    <%= item.name %>
  </a>
<% } %>

尤其是class="current"周围的包装似乎很模糊。我正在寻找不包含一些辅助方法的最佳方法。有清洁的东西吗?

解决方法

我通过ERB做了很多CSS修改。我喜欢做类似的事情:

<% site.data.navigation.each { |item| %>
  <a href="<%= item.link %>" 
    class="<%= (page.url == item.link) ? 'current','')%>" >
      <%= item.name %>
  </a>
<% } %>

虽然我尝试不允许行超出编辑器屏幕的边缘,但是对于HTML,我并没有那么强行实施,因为我希望将标记视为一行:

 <% site.data.navigation.each do |item| %>
   <a href="<%= item.link %>" class="<%= (page.url == item.link) ? 'current','')%>" >
      <%= item.name %>
   </a>
<% end %>

对我来说,它显示了外部循环,然后是标签,然后是标签的内容,最后是结束标签。另外,我不将{}用于多行循环。