1. ホーム
  2. ruby-on-rails

[解決済み] mongoidでnot null or emptyを選択する

2023-05-09 17:10:04

質問

モデルを変更して、新しいフィールドを含むようにしました...

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