Странное поведение Datamapper - PullRequest
1 голос
/ 25 августа 2010

У меня есть этот код в моем контроллере:

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

Как мне получить #<DataMapper::Collection:0x85a9d00> из моего html?

1 Ответ

2 голосов
/ 25 августа 2010

В HAML, = используется для отображения вывода вещи в вашей разметке. #<DataMapper::Collection:0x85a9d00> - это возвращаемое значение @cats.each do |item|. Вы хотите использовать -, который выполняет код (но не печатает возвращаемое значение):

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