ruby-on-rails - 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"
看起来很笨拙。我正在寻找不包含一些辅助方法的最佳方法。有没有更干净的东西?
解决方案
我通过 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 %>
对我来说,它显示了外部循环,然后是标签,然后是标签的内容,最后是结束标签。此外,我不将 {} 用于多行循环。
推荐阅读
- php - 如何在PHP中获取特定月份周的第一个和最后一个日期
- css - 如何在 div 上启用没有滚动条的输入样式滚动?
- python - 堆叠未知维度的numpy数组
- android - App重启后如何获取保存状态?
- if-statement - JS在两种颜色之间切换onlick w / if else
- apache-kafka - Kafka中如何根据另一条记录的处理结果来处理一条记录?
- python - sqlite3.OperationalError 关于不完整的输入 - 建议赞赏
- cygwin - --export-dynamic 和 --export-all-symbols 之间有什么区别?
- slurm - slurm 可以将 3 台单独的计算机作为一个“节点”运行吗?
- c# - 为什么将空值转换为 datetime2 会在 SQL 中引发转换错误?