сфера с несколькими условиями - PullRequest
0 голосов
/ 18 февраля 2012

У меня есть таблица врачей, у врачей есть doctor_id, hospital_id, dept_id

Как мне написать область действия, в которой я могу сказать: выберите всех докторов, которые имеют тот же hospital_id, что и dept_id, что и текущий doctor_id, но не включают этот текущий doctor_id

1 Ответ

2 голосов
/ 18 февраля 2012

Вот это как размах:

class Doctor < ActiveRecord::Base
  def self.other_docs_in_dept(doc)
    Doctor.where(dept_id: doc.dept_id)
          .where(hospital_id: doc.hospital_id)
          .where("id != #{doc.id}")
  end
end

... но вам может подойти как метод экземпляра:

class Doctor < ActiveRecord::Base
  def other_docs_in_dept
    Doctor.where(dept_id: dept_id)
          .where(hospital_id: hospital_id)
          .where("id != #{id}")
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...