wal*_*lta 3 ruby iterator ruby-on-rails mysql2
我有一个用户对象,我通过简单的调用暴露:
@users = User.all
Run Code Online (Sandbox Code Playgroud)
在我使用自定义SQL生成结果的地方,我也有一些更昂贵的查询.
@comment_counts = User.received_comment_counts
Run Code Online (Sandbox Code Playgroud)
此调用和其他类似的调用将返回按ID排序的列表中每个用户一个元素的对象.
在我看来,我想同时遍历用户和comment_counts对象.例如:
for user, comment_count in @users, @comment_counts do
end
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何做到这一点.我似乎也无法弄清楚如何从@comment_counts结果中获取单个记录而不通过@ comment_counts.each运行它
是不是有某种方法可以为每个lits对象构建迭代器,将它们转储到while循环中并在循环的每次传递中单独执行迭代器?此外,如果您可以回答这个问题,我可以在哪里学习如何逐步浏览rails中的列表.
这样的事情对你有用:
@users.zip(@comment_counts).each do |user, comments_count|
# Do something
end
Run Code Online (Sandbox Code Playgroud)
我从未在Ruby中遇到迭代器的手动操作,更不用说它无法完成.这样的代码可能会很混乱,所以我可能更喜欢更优雅的解决方案.
| 归档时间: |
|
| 查看次数: |
2570 次 |
| 最近记录: |