У меня есть логический столбец с именем active
в таблице с именем user
.
Я пытаюсь найти users
, где user
до и после current_user
не имеют одинакового значения в столбце active
.
def has_unique_active_value
user_ids_to_check = [self.id + 1, self.id - 1] # user.id before and after current_user
if User.where(id: user_ids_to_check, active: self.active).present?
return nil
else
return self
end
end
current_user = User.all.first.has_unique_active_value
Выше должно возвращаться user
, если значение столбца active
отличается от user
до и после. если нет, он должен вернуть nil
Будет ли более легкая или лучшая практика для достижения желаемого результата?