【问题标题】:Strange Datamapper's behaviour奇怪的 Datamapper 的行为
【发布时间】:2010-08-25 21:58:52
【问题描述】:

我的控制器中有这段代码:

 @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 中取出 #&lt;DataMapper::Collection:0x85a9d00&gt;

【问题讨论】:

    标签: sinatra haml datamapper


    【解决方案1】:

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

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

    【讨论】:

    • 哎呀……我没注意到这件事。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-08
    • 2015-07-20
    • 2010-10-03
    相关资源
    最近更新 更多