1

我有一个从 Mongoid(MongoDB 对象映射器)返回的 Enumerable 对象

使用 HAML:

= @employees.count       
= @employees.class

- @employees.each do |e|
  =h e.inspect

计数显示 3 类显示 Enumerable::Enumerator 但仅打印出 1 个项目

对象在控制器中使用

@employees = Employee.limit(3).where({:_id.gte => startID.to_i})

如果我改变

- @employees.each do |e|

- @employees.to_a.each do |e|

然后它打印出所有 3,但为什么 Enumerable 方法会失败?如果我在 rails 控制台中尝试使用p e它实际上会打印出 3 个项目。

4

1 回答 1

0

我猜这@employees不是懒惰,而是你的haml有问题。

尝试在 haml 中做同样的事情:

<ul>
= @employees.map { |e| "<li>" + e.inspect + "</li>" }.join
</ul>

好的,只需阅读一些 haml 文档,这对您有用吗?

- @employees.each do |e|
    %p= h e.inspect
于 2010-09-09T04:07:53.790 回答