我编写了以下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中的循环结构做了错误的操作,或者是什么导致数组被渲染?
答案 0 :(得分:14)
波浪号(~
)输出行的结果,这是一个数组,因为Array#each
返回原始数组。在这个意义上,=
和~
行为相似;但是,~
会保留=
通常剥离的空格。
你可能想要使用破折号(-
),它运行代码但不输出表达式的结果。