嗨我有一个ruby项目中的用户数据库,我需要遍历每个用户并获取他们的值。你怎么循环?我知道你可以使用
model.find(i)
并获取每个元素但是如何循环直到最后一个元素?
答案 0 :(得分:6)
我假设你正在使用rails&积极的记录。如果是这样,那么
User.all.each do |user|
# your code here
end
或
User.find_each do |user|
# your code here
end
前者一次从数据库加载所有用户,后者 - 批量加载记录,如果你有大量记录,这将很有用。
在ruby迭代器中使用了很多,通常使用名为Enumerable的标准模块:An Introduction to Ruby's Enumerable Module
答案 1 :(得分:3)
罗斯在答案array.each
中说,这是循环的最佳方式。
但是在ActiveRecord的情况下,您应该查看Loading in Batches上的Rails指南部分。
您可以很容易地说User.all.each
,但如果您有1,000,000个用户,这可能会使您的服务器崩溃。
最好说
User.find_each do |user|
* do something *
end
让Active Record在幕后照顾你的记忆。
答案 2 :(得分:2)
循环有很多种方法 假设您有一个用户对象
你可以做到
users.each do |user|
puts user.name
end
这是循环的最简单方法
其他方式可能是使用for循环,而循环其他循环在rails中 http://www.tutorialspoint.com/ruby/ruby_loops.htm