Ruby On Rails — как присвоить моделям значение true?

Изучаю Ruby On Rails, возник вопрос по моделям.

Модель имеет boolean поле. Значение true может быть присвоено только одной записи в коллекции, остальные сбрасываются на false.
Как грамотно реализовать?
  • Вопрос задан
  • 2566 просмотров
Пригласить эксперта
Ответы на вопрос 2
walkman7
@walkman7
Проще всего, перед сохранением нужно выбрать модель в которой поле true и заменить на false. Или добавить метод который будет триггером для замены поля bool.

api.rubyonrails.org/classes/ActiveRecord/Callbacks.html
apidock.com/rails/v4.0.2/ActiveRecord/Persistence/...
Ответ написан
Комментировать
sck_v
@sck_v
exflow.io
before_save :method

def method
  if column_changed? and column?
    Model.where(column: true).update_all(column: false)
  end
end

column - ваша колонка
Model - модель.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы