长期聆听者,第一次来电者。我是芝加哥 Code Academy 的 6 个月大的开发人员,我已经在这个问题上停留了几个小时。在此之前,我感谢您的所有帮助和时间。
我正在将 ERB 模板转换为 HAML。再培训局是:
<ul class="nav nav-list">
<li class="nav-header">
<%= navigation_header %>
</li>
<% @navigation_links.each do |link| %>
<% if link[:name].present? %>
<li <%= link[:name] == @topic ? "class='active'" : "" %>>
<%= link_to link[:name], link[:url] %>
</li>
<% else %>
<hr />
<% end %>
<% end %>
</ul>
我遇到问题的 ERB 行是:
<li <%= link[:name] == @topic ? "class='active'" : "" %>>
我已经测试了许多变体,尽可能多地阅读 HAML 参考资料,并专注于本节:
您还可以使用 #{} 插值在 HTML 样式的属性中插入复杂的表达式:
%span(class="widget_#{@widget.number}")
...并搜索了 Google & StackOverflow,但我无法得到正确的输出;HAML 一直无视内联 CSS。经过我所有的基础工作,我对这个版本非常有信心,但它没有奏效:
- @navigation_links.each do |link|
- if link[:name].present?
%li{ :class => "#{ link[:name] == @topic ? "active" : ""}" }
= link_to link[:name], link[:url]
- else
%hr
我也尝试过 :erb 过滤器,但无济于事:
%ul.nav.nav-list
%li.nav-header
= navigation_header
- @navigation_links.each do |link|
- if link[:name].present?
:erb
<li <%= link[:name] == @topic ? "class='active'" : "" %>>
= link_to link[:name], link[:url]
- else
%hr
而且我还尝试了一个 :css 过滤器,但是失败了。
有什么想法可能是错的吗?这是我在 StackOverflow 上的第一个问题,所以如果我遗漏了一些有用的信息或违反了任何规则,请告诉我。