没有给出错误的块

时间:2013-05-28 20:55:06

标签: ruby-on-rails activerecord

Rails指南:http://guides.rubyonrails.org/active_record_querying.html表示我可以使用find_each来限制ActiveRecord返回的行数。它还说我不必指定一个开始,默认顺序是ASC。在这种情况下,我真的无法指定开始,因为索引是推特ID。

这就是我在控制器中的索引方法:

@user = User.find_each(:batch_size => 100)

但是当Rails尝试渲染视图时,我收到以下消息:

no block given (yield)

这告诉我Rails要我提供一个块(如起点和终点)。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

来自the docs

  

生成查找选项找到的每条记录。查找由批量大小为1000的find_in_batches执行(或者由:batch_size选项指定)。

我想你想直接使用find_in_batchesfind_each就像是find_in_batcheseach一样。 each期待一个阻止。 find_each说:“在符合这些条件的块中查找实例,然后调用我正在传递的块。”

此外,@user表示您正在寻找一个用户,但批量获取倍数。那是你要的吗?如果是这样,您可能想要一个简单的find。如果您需要倍数,请在视图中尝试@users = User.find_in_batches然后@users.each do |user| ... end