在Ruby中查询两个条件

时间:2018-05-22 02:10:22

标签: ruby-on-rails

我有一个表Event,我想创建一个有两个条件的唯一查询。我在控制台中单独尝试了我的条件,它们单独工作。但我不知道如何将它们结合起来。查询如下:

今天选择start:timedate以上的事件(事件尚未发生)

Event.where("start > ? " ,Time.now).count

并且还想从特定的user_id中选择事件,例如:

Event.where(user_id: "1").count

我怎么能在单个查询中将它们组合起来? 谢谢

2 个答案:

答案 0 :(得分:3)

Event.where("start > ? " ,Time.now).where(user_id: "1").count

可选地,

Event.where("user_id = 1 AND start > ?", Time.now).count

您也可以使用OR语句。

答案 1 :(得分:0)

尝试scope

Event.rb

中的

scope :filter_by_time_user, ->(userId, time) { where('user_id = ? AND start > ?', userId, time) }

你可以在任何地方打电话:

Event.filter_by_time_user(1, Time.now).count