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で試してください:

<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 に答える