mongoid에서 null이 아니거나 비어 있지 않은 곳을 선택하십시오.


80

다음과 같은 새 필드를 포함하도록 모델을 수정했습니다.

field :url, :type => String

저는 activeadmin을 사용하므로 새 항목을 만들 때 @model.url비어 있고 스키마를 변경하기 전에 만든 항목에서는 nil입니다. 둘 다 어떻게 선택합니까? 나는 시도했다 :

# Returns nils and strings
Model.where(:url.ne => "").count 

# Returns strings and ""
Model.where(:url.ne => nil).count

# Returns strings, nils and ""
Model.where(:url.ne => ["", nil]).count 

또는 이런 종류의 시나리오에 대한 모범 사례가 있으면 알려주십시오.

답변:


85

시험

Model.where(:url.nin => ["", nil]).count

그것은 때에도 작동합니다 url = nil


동의합니다. 이것이 실제 답변이며이 질문에 대한 답변이어야합니다.
quinn

필드가 nil이 아닌 항목 만 확인하려는 경우 :Model.where(:field.ne=>nil)
Ekkstein


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.