我有一个呼叫数据表,我想查询所有未应答的呼叫,这意味着呼叫开始时间等于呼叫结束时间。我目前使用以下普通SQL,它按预期工作:
/*padding: 0 15px;*/
我想知道是否有更多的“rails”方式来使用ActiveRecord查询接口。理想情况下,我想在我的select * from calls where calls.start = calls.end
模型中设置一个范围,该范围会返回所有未应答的呼叫。类似的东西:
Call
上述操作不起作用,因为Rails将scope :unanswered, -> { where(start: :end) }
视为字符串而不是DB中的:end
列。
我正在使用PostgreSQL作为我的数据库引擎。
答案 0 :(得分:1)
SQL查询
select * from calls where calls.start = calls.end
可以使用范围以rails
方式完成,如下所示:
scope :unanswered, -> { where('start = end') }
答案 1 :(得分:0)
我认为你可以做到以下几点:
scope :unanswered, -> (end) { where(start: end) }