2010-08-25 39 views
1

我有這樣的代碼在我的控制器:奇怪的DataMapper行爲

@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>

回答

2

在HAML中,=用於在標記中顯示事物的輸出。 #<DataMapper::Collection:0x85a9d00>@cats.each do |item|的返回值。你想用-,其執行代碼(但不打印的返回值):

- @cats.each do |item| 
    %li 
    = link_to item.title, "/catalog/#{item.id}/" 
+0

Oooops ......我沒有注意到這件事。多謝! – 2010-08-25 14:02:32