将 'or' 应用于内部连接的 where 子句 ActiveRecord

Apply an 'or' to an inner joined where clause ActiveRecord

型号:

class QueueList < ActiveRecord::Base
  has_many :times

  self.today
    joins(:times).where(times: { period_type: 'on', date: Date.today} || times: { period_type: 'from', date: Date.today }) 
  end
end

以上模型包含时间列表。因为 :times 可以有两个不同的 period_types,我必须对这个查询应用 "OR"。有没有一种方法可以在不使用字符串查询的情况下完成上述错误代码,就像我在 ActiveRecord 中尝试做的那样?

你可以使用 Arel to perform OR queries or the ActiverecordAnyOf gem.

但是,对于您的情况,您可以只使用包含(IN 语句)。例如:

.where(period_type: %w(on from), date: Date.today)