2012-02-16 4 views
0

내 rails3.1 애플리케이션에서 다음 주문을 내 주문 모델 중 하나에 적용하려고합니다.Rail3 'Return False XYZ'쿼리가 작동하지 않는 경우

def digital? 
    line_items.map { |line_item| return false unless line_item.variant_id = '102586070' } 
end 

나는 그럼에도 불구하고 ID = 102586070.이있는 별도의 변형이라고 prepaid_voucher을 만들었습니다, 그 결과는

주문

LineItem을 주문에 속한 많은 line_items

을 가지고 ... 거짓 및 변형

변형은 많은 line_items

,691있다

이러한 작업을 수행하는 가장 좋은 방법입니까? 어떻게 수정할 수 있습니까? 모두의

답변

1

먼저 나는 (당신이 원하는 것을 이해한다면) 나는 오히려 그런 뭔가를

def digital? 
    line_items.select{|line_item| line_item.variant_id == '102586070'}.any? 
end 

를 이동, 당신은 여기에 이중 ==line_item.variant_id = '102586070' 원한다고 생각하지만 당신이 정말로 원하는 것을 이해하기 어렵다 id가 발견되지 않으면 예상되는 동작은 무엇입니까?

+0

지나치게 복잡한 질문은 피하려고했습니다. 나는 놀림을 사용하고 카트 프로세스의 상태를 변경하려고합니다. 나는. 디지털 제품이 x로 이동하면 y로 이동합니다. 위의 여전히 작동하지 않습니다 : ( – simonmorley

+0

그래, 나는 그것을 여러 번 수정했지만 ID의 존재 여부에 따라 참 또는 거짓으로 응답해야합니다 (어떤 btw 상수 또는 좀 더 설명 변수에 가야한다). 귀하의 코드 Acccording 'return false'가 아니라면'return true if' =>'.any?'가해야하지만, 아마도'.empty?'또는'.blank? '를 원할 수도 있습니다. – ecoologic

+0

또한 그 후에 어떤 객체도 저장하지 않았는지 확인하십시오. 함수 또는 그 중 일부는 처음에'= '로 할당 한 variant ID를 포함 할 수 있습니다 – ecoologic

관련 문제