Как сделать зависимость внутри модели Rails?

Использую Ruby on Rails и Mongoid.
Есть модель Placе, где пользователи могут отмечать свое местоположение и ставить current_position true.
Нужно чтобы при создание пользователем новой локаций когда он ставит current_positon true из других его локаций это значение становилось false.
class Place
  include Mongoid::Document

  field :current_position, type: Boolean, default: "false"

  validates :user_id, presence: true

  belongs_to :user, touch: true
 
end
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
nbekseitov
@nbekseitov
Ruby developer
class Place
  include Mongoid::Document

  field :current_position, type: Boolean, default: "false"

  validates :user_id, presence: true

  belongs_to :user, touch: true

  after_save :update_position_for_other, if: :current_position_changed?

  private

  def update_position_for_other
    Place.where(:id.ne => id, user_id: user_id).update_all(current_position: false) if current_position
  end
end
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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