奇怪的Datamapper的行为

时间:2010-08-25 13:49:57

标签: sinatra haml 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>

1 个答案:

答案 0 :(得分:2)

在HAML中,=用于显示标记中事物的输出。 #<DataMapper::Collection:0x85a9d00>@cats.each do |item|的返回值。您想使用执行代码的-(但不打印返回值):

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