我的控制器中有这个代码:
@cats = DirCat.all
这是一种观点:
%ul#menu
= @cats.each do |item|
%li
= link_to item.title, "/catalog/#{item.id}/"
得到奇怪的输出:
<ul id='menu'>
<li>
<a href="/catalog/4/">hello</a>
</li>
<li>
<a href="/catalog/5/">hello 1</a>
</li>
#<DataMapper::Collection:0x85a9d00>
</ul>
在irb控制台中:
irb(main):002:0> c.each { |item| puts item.title }
hello
hello 1
=> [#<DirCat @id=4 @parent_id=1 @title="hello">, #<DirCat @id=5 @parent_id=1 @title="hello 1">]
如何从我的HTML中获取#<DataMapper::Collection:0x85a9d00>
?
答案 0 :(得分:2)
在HAML中,=
用于显示标记中事物的输出。 #<DataMapper::Collection:0x85a9d00>
是@cats.each do |item|
的返回值。您想使用执行代码的-
(但不打印返回值):
- @cats.each do |item|
%li
= link_to item.title, "/catalog/#{item.id}/"