Вы можете использовать count
:
all_true = items.count(:conditions => [ 'bool_column = ?', true ]) == items.count
И если у вас нет NULL для беспокойства в вашем логическом столбце:
all_true = items.count(:conditions => [ 'bool_column = ?', false ]) == 0
Или вы могли бы сделать это таким образом (как предложено klochner ), чтобы обойти обычные проблемы NULL и избежать двойного count
:
all_true = items.count(:conditions => [ 'bool_column = ? or bool_column is null', false ]) == 0
Вы также можете проверить несколько логических столбцов одновременно.