2

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

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

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

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

no block given (yield)

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

有任何想法吗?

4

1 回答 1

0

文档

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

我想你想find_in_batches直接使用。find_each就像一个哞哞声find_in_batcheseacheach期望一个块。find_each说,“在符合这些条件的块中查找实例,然后调用我正在传递的每个块。”

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

于 2013-05-28T21:06:43.570 回答