如何在rails中加入不存在

时间:2015-12-21 23:41:56

标签: sql ruby-on-rails

我试图在rails中进行半复杂的查询,而我试图找到一种方法在rails中执行它而不运行原始sql。它是如何工作的我有一个类列表,它与表称为天连接,每个类有多天运行。

我希望有一个查询,我会在星期二和星期四给出一个天的列表,它会给我一个类列表,其中运行的所有日期都在给出的列表中。

我有可以使用的原始sql,但我无法弄清楚如何将其转换为rails命令。

select * from webtms_classes c 
where c.class_id = 'CHEM101'
and not exists (
  select cd.day from webtms_days cd
  where cd.webtms_class_id = c.id
  and cd.day not in ('Monday','Tuesday','Thursday')
) 

以下是模特的内容:

class WebtmsClass < ActiveRecord::Base
  has_many :webtms_days, dependent: :destroy
end

class WebtmsDay < ActiveRecord::Base
  belongs_to :webtms_class
end

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

你可以在Arel中使用'not exist'

if (*pPi && *pRadius && *pArea)