HAML在#each之后呈现数组

时间:2011-03-03 13:57:23

标签: haml

我编写了以下HAML代替脚手架索引页面:

%h1 Listing Races

%table
  %tr
    %th Name
    %th Date
    %th Details
  ~@races.each do |race|
    %tr
      %td= race.name
      %td= race.date
      %td= race.details
      %td= link_to 'Show', race
      %td= link_to 'Edit', edit_race_path(race)
      %td= link_to 'Destroy', race, :confirm => 'Are you sure?', :method => :delete
%br
= link_to 'New Race', new_race_path

当渲染页面时,表格会按预期打印出来,但之后也会打印数组@races;例如:

[#<Race id: 1, name: "TestRace15", date: "2011-03-11 11:00:00", details: "Test Race to make sure that everything seems to wor...", created_at: "2011-03-03 00:16:09", updated_at: "2011-03-03 00:16:09">]

我是否对HAML中的循环结构做了错误的操作,或者是什么导致数组被渲染?

1 个答案:

答案 0 :(得分:14)

波浪号(~)输出行的结果,这是一个数组,因为Array#each返回原始数组。在这个意义上,=~行为相似;但是,~会保留=通常剥离的空格。

你可能想要使用破折号(-),它运行代码但不输出表达式的结果。

See the HAML docs for more :)