2011-10-21 3 views
2

Braintree를 사용하여 레일스 앱에서 구독 관리를하고 있습니다.변수 찾기 조건을 사용하는 레일

브레인 트리 고객 ID 및 구독 ID를 저장하는 구독 모델이 있습니다.

내 구독 모델에서 활성 구독을 필터링하고 싶습니다. 지금까지 나는

def find_active_subscriptions 
@active_subscriptions = Braintree::Subscription.search do |search| 
    search.status.is "Active" 
end 

을하지만 지금은 같은 가입 ID로 내 로컬 서브 스크립 션 모델의 모든 개체를 찾을 수 및 @local_active_subscriptions 등의 변수에 그것을 넣어 @active_subscriptions에 가입 ID를 사용하고 싶습니다.

내가해야 할 이유는 로컬 정보를 사용하여 Braintree :: Address에 액세스하고 활성 주소 만 가져 오기 때문입니다.

도움 주셔서 감사합니다.

답변

1

@active_subscriptions이 있으면 배열에 모든 ID를 수집하여 로컬 구독 모델의 find 방법으로 전달할 수 있습니다. 난 당신이 여기에 사용하는 속성을 모르는, 그래서 그냥 추측 만들고있어 :

@active_subscription_ids = @active_subscriptions.collect(&:subscription_id) 
@local_active_subscriptions = LocalSubscriptionModel.find(@active_subscription_ids) 
1

잘 모르겠어요 무엇 브레인 :: Subscription.search 반환하지만 ActiveRecords에 가까운 무언가가 있다면, 당신은 같은 것을 사용할 수 있습니다

@local_active_subscriptions = Subscription.where("id IN(?)", @active_subscriptions.map{ |act_subs| act_subs.id }) 

을 .MAP 함수는 배열에 모든 ID를 넣어해야하고 액티브 쿼리 ID 해당 배열에 구독 테이블의 모든 구독을 찾아 것입니다. Braintree :: Subscriptions에서 매핑에 대해 확실하지 않습니다. 나는 그것을 사용한 적이 없다.

편집

ctcherry 말했듯이, 당신은 또한 발견과 검색을 할 수 있습니다. 그리고 나는 collect가 배열에 ID를 매핑하는 데에도 도움이된다고 생각합니다. 사용할 수도 있습니다 @active_subscriptions.map(&:id)

관련 문제