У меня есть следующие таблицы (показаны только первичные и внешние ключи вместе с именем в таблице udds):
employee appointment appointment_udds udds
-------- ----------- ---------------- ----
id id id id
employee_id appointment_id name
udds_id
Я устанавливаю отношения в моделях следующим образом:
employee.rb
has_many :appointments, :dependent => :destroy
appointment.rb
has_many :appointment_uddss, :dependent => destroy
belongs_to :employee
appointment_udds.rb
belongs_to :appointment
belongs_to :udds
udds.rb
has_many :appointment_uddss
Итак, я работаю в основном с моделью Employee, и я пытался создать именованную область в своей модели, чтобы получить все записи с ненулевым именем udds, например:
employee.rb
named_scope :with_udds, :include => :uddss, :conditions => "udds.name IS NOT NULL"
Я надеялся позвонить Employee.with_udds , чтобы получить всех сотрудников, у которых есть поле с ненулевым именем для их коэффициентов. Являются ли эти отношения слишком сложными для ActiveRecord или я поступаю неправильно?
Я попытался расширить связь до таблицы udds в классе сотрудников:
class Employee < ActiveRecord::Base
acts_as_audited
has_many :appointments, :dependent => :destroy
has_many :appointment_uddss, :through => :appointments
has_many :uddss, :through => :appointment_uddss
named_scope :with_udds, :include => :uddss, :conditions => "udds.name IS NOT NULL"
Затем в консоли:
Employee.with_udds
возвращает пустой набор (в БД есть данные, где udds.name! = Null)