숫자가 특정 값보다 우수한 경우에만 쿼리 mongoid의 값을 변수에 할당하려고합니다.두 번 루비를 실행하지 않고 변수를 검사하고 할당하십시오.
내가 두 번 쿼리가 실행
mdl = Mdl.by_params(params) unless Mdl.by_params(params) < limit
을 할 경우, 내가 어떻게 확인 하나 개의 쿼리로 할당해야합니까?
숫자가 특정 값보다 우수한 경우에만 쿼리 mongoid의 값을 변수에 할당하려고합니다.두 번 루비를 실행하지 않고 변수를 검사하고 할당하십시오.
내가 두 번 쿼리가 실행
mdl = Mdl.by_params(params) unless Mdl.by_params(params) < limit
을 할 경우, 내가 어떻게 확인 하나 개의 쿼리로 할당해야합니까?
비교를 위해 Mongoid에서 데이터를 검색해야합니다.
mdl_temp = Mdl.by_params(params)
mdl = mdl_temp unless mdl_temp < limit
가능한 해결책은 md1
데이터 유형에 따라 다릅니다.
일반 솔루션 :
((mdl = Mdl.by_params(params)) < limit) && md1 = nil
md1
경우 replace
에 응답 mutatable 개체의 오전 인스턴스 (예 : Hash
)입니다 :
Mdl.by_params(params).tap do |md|
md1.replace(md) unless CONDITION # md[:limit] < limit
end
감사합니다,하지만 난 쿼리를 많이 가지고 있습니다 이 일을하고 그것을 읽을 수있는 일종의 내가 어쩌면 직접이 일을 루비 메서드를 생각했다 또는 메서드를 만들 수 있습니까? – Bowtch
이와 같은 쿼리가 많은 경우 논리를 독립 실행 형 메서드로 분리하십시오. 'mdl = search_by_params (params, limit)' –
그래, 내가 쓰고있는 방법이지만, 가장 구체적인 쿼리가 충분한 결과를 반환하지 않으면 결과를 얻고 싶다. ^^ 아마 다른 질문을 할 것이다. 이 정도면 충분하다. 시간 내 주셔서 감사합니다.) – Bowtch