2010-12-04 4 views
0

주어진 :레일즈 : 객체의 ID를 가진 객체의 레코드 선택

@products = Products.all 

# Do some code to choose a specific id of a record from @products 
chosen_product_id = 1 

현재 코드에서 두 번째 전화를 겁니다 :

Product.find(chosen_product_id) 

... 비효율적입니다. 다른 데이터베이스를 호출하지 않고 기존 오브젝트에서 올바른 레코드를 선택하려면 어떻게합니까?

+3

당신이'를 통해 SQL 수준의 조건을 제공 할 수있을 때 그렇게 할 이유 확실하지 : conditions' 또는'where' – Chirantan

+0

내가 @Chirantan에 동의합니다. 비효율적이라면 무엇을 의미합니까? 두 번의 전화를 걸면 비효율적이지 않을 수 있습니다. 객체 관계형 매핑 프레임 워크에서는 항상 쿼리를 수행합니다. – hade

+0

@Chirantan - 큰 레코드 집합을 잡아서 두 개의 다른 목적으로 큰 집합과 선택한 단일 레코드를 사용합니다. – jmccartie

답변

1
@products.detect {|p| p.id == chosen_product_id } 
+0

Q :'detect'에 대한 문서는 어디에 있습니까? – Zabba

+0

http://ruby-doc.org/ruby-1.9/classes/Enumerable.html#M002707 –

관련 문제