2011-10-13 2 views
1

안녕하세요, 저는 루비 프로젝트에서 사용자 데이터베이스를 가지고 있으며 각각을 반복하여 값을 구해야합니다. 어떻게 반복합니까? 사용할 수 있다는 것을 알고 있습니다.루비로 루핑하기

model.find(i) 

각 요소를 얻지 만 마지막 요소까지 어떻게 반복합니까? 루프하는 방법에는 여러 가지가 있습니다

답변

2

는이

다른 방법은 루프에 사용 될 수있는 루프 쉬운 방법은 있지만,

users.each do |user| 

    puts user.name 

end 

당신이 할 수있는 당신이 사용자가

객체 말해봐 루프의 다른 루프를 반복하십시오. http://www.tutorialspoint.com/ruby/ruby_loops.htm

6

레일을 사용한다고 가정합니다. & 활성 레코드입니다. 당신이 기록의 많은 경우 도움이되는, 일괄로드 기록 - 그렇다면,

User.all.each do |user| 
    # your code here 
end 

또는

User.find_each do |user| 
    # your code here 
end 

전 부하에게 한 번에 데이터베이스에서 모든 사용자, 후자을한다. 루비 반복자에서

많이 사용되며, 일반적으로 Enumerable에서라는 표준 모듈은 사용됩니다 : An Introduction to Ruby's Enumerable Module

+1

'find_each'에 +1 – jaydel

3

로스 array.each 루프에 가장 좋은 방법은 그의 대답에 말했듯이.

그러나 ActiveRecord의 경우 레일 가이드 섹션 Loading in Batches을 살펴 봐야합니다.

매우 쉽게 User.all.each라고 말할 수 있지만 1,000,000 명의 사용자가있는 경우 서버가 손상 될 수 있습니다.

User.find_each do |user| 
    * do something * 
end 

말 그리고 무대 뒤에서 메모리 후 액티브 레코드 모양을하게하는 것이 훨씬 낫다.