Как перевести этот запрос в ActiveRecord (Rails 5)

Реляционные операторы (>= и <=) выполняют тип принуждения ( ToPrimitive ), с типом подсказки Number, все присутствующие реляционные операторы имеют такое поведение.

Вы можете увидеть внутренние детали этого процесса в . Алгоритм абстрактного реляционного сравнения .

С другой стороны, оператор Equals (==), если операнд null, он возвращает только true, если другой либо null, либо undefined, не применяется принудительное числовое число.

null == undefined; // true
null == null; // true

Проверьте внутренние детали этого процесса в . Алгоритм абстрактного реляционного сравнения .

Рекомендуемые статьи:

0
задан randombits 18 March 2019 в 22:42
поделиться

1 ответ

Boat.where('is_docked = ? AND (dock_id IS NULL OR dock_2_id IS NULL)', 1,).select(:property_id, :player_id)

Или

Обновить модель лодки

class Boat < ApplicationRecord
  scope :docked, -> { where('is_docked = ?', 1 }
  scope :with_unassigned_dock, -> { where('dock_id IS NULL OR dock_2_id IS NULL') }
end

новый запрос

Boat.docked.with_unassigned_dock.select(:property_id, :player_id)
0
ответ дан Antarr Byrd 18 March 2019 в 22:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: