首页 > 解决方案 > Prettier ERB 有条件地添加元素类

问题描述

我正在努力学习如何编写更漂亮的 ERB。我怎样才能格式化这个看起来更漂亮?

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

特别是环绕class="current"看起来很笨拙。我正在寻找不包含一些辅助方法的最佳方法。有没有更干净的东西?

标签: ruby-on-railsrubyerb

解决方案


我通过 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 %>

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


推荐阅读