質問: Item.where :context => nil || '' ``` 検索に「どこ?」などの語句が含まれていると、Google-fuで多くのことをするのは難しいです。
回答: あなたが持っているものはうまくいかないでしょう。 ``` @items = Item.where context: nil || '' ``` 本当に評価する: ``` @items = Item.where context: '' ``` したがって、このメソッドを使用して `context` を `nil` に設定したアイテムは見つかりませんでした。 **サイドノート** `thing ||を使うこのように`他のは動作しません。 item == 'test'の場合、`を書くことはできません|| 'something'` であり、 `item` が `'何か'` である場合に動作すると考えます。 `item` が `'test'` の場合にのみ機能します。このようなものを動作させるには、item == 'test'の場合に`を記述する必要があります。 item == '何か'` 。これは人間の話ではありませんが、コンピュータの読み方です。 **メインイベントに戻る** 動作するクエリを作成する1つの方法は次のとおりです。 ``` Item.where("context = ? or context = ?", nil, '') ``` `context` が `nil` または `context` であるすべての項目を `''` とします。 これは動作しますが、特に "Rails-y"とはみなされません。より良い方法は次のとおりです: ``` Item.where(context: [nil, '']) ``` `context` が `[nil、 '']` にあるすべての項目を検索します。 関連する質問