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

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

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

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



답변

시험

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

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


답변

시험

Model.where(:url.ne => "", :url.exists => true).count

Mongoid 기호 연산자 참조


답변

시험:

Model.nin(url: ['', nil])


답변