Haml 不从 rails 模型渲染元素

Haml not rendering element from rails model

我正在尝试从我的 'track' 模型中呈现适当的元素,该模型是名为 'genre'

的列中的一个字符串

然而,而不是渲染流派;该页面反而呈现 =track.genre 而不是实际类型。这是语法错误吗?

index.html.haml(观看次数>曲目)

- content_for :header do
  %section.hero.is-warning
    .hero-body
      .container
        %h1.title
          Browse the newest Tracks
.instrument-index-grid.pt4
  - @tracks.each do |track|
    .track.border-light
      .track-thumb
        =link_to image_tag(track.image_url(:thumb)), track
        - if track.genre
          .condition
            %span.tag.is-dark = track.genre // this renders incorrectly
      .pa3
        %h3.fw7.f4.title= link_to track.name, track
        %p.has-text-gray.fg.pt1
          Sold by #{track.user.name}
        %p.f3.fw6.has-text-right.pt2.price= number_to_currency(track.price)
        - if track_artist(track)
          = link_to 'Edit', edit_track_path(track), class: "button is-small"
          = link_to 'Delete', track, method: :delete, data: { confirm: "Are you sure ?" }, class: "button is-small"

将其移至单独的行并删除 space

.condition
   %span.tag.is-dark 
     =track.genre 

这只是一个错字。而不是

%span.tag.is-dark = track.genre

应该是

%span.tag.is-dark= track.genre

请参阅 reference 的 "Ruby Evaluation" 部分:

= can also be used at the end of a tag to insert Ruby code within that tag

在标记后加上额外的 space,= 不再位于标记的末尾,因此它与该行的其余部分一起被解释为纯文本。