рельсовая область по умолчанию с двумя значениями - PullRequest
0 голосов
/ 12 декабря 2018

Вот вопрос новичка, это действительно в рельсах?

default_scope { where(:arhiveeritud => false||nil).order('id') }

Мне нужно, чтобы default_scope проверил 'arhiveeritud' для false и nil .Я получаю неверный результат, если он ложный.

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Нет, вы можете попробовать следующее,

default_scope { where(arhiveeritud: [false, nil]).order('id') }

Рекомендуется использовать чистый запрос active_record вместо необработанного SQL.

0 голосов
/ 12 декабря 2018

Вы можете использовать SQL OR в where:

default_scope { where("arhiveeritud = ? OR arhiveeritud IS NULL", false).order(:id) }

Я бы посоветовал подумать об установке значения по умолчанию для этого поля и запустить миграцию, если необходимо, чтобы заполнить существующую.Лучше иметь согласованные столбцы без NULL с.если это логический столбец.

...