我有这些疑问:提高两个类似的查询
initial_date = NewUser.joins(:interactions)
.where('interactions.interaction_sub_type in (?)', types)
.where('interactions.interaction_type in (?)', actions)
.limit(1000).order('users.id asc').minimum(:updated_at)
last_date = NewUser.joins(:interactions)
.where('interactions.interaction_sub_type in (?)', types)
.where('interactions.interaction_type in (?)', actions)
.limit(1000).order('users.id asc').maximum(:updated_at)
他们几乎是相同的,除了minimum
和maximum
。
我想改善这个代码,但我不知道如何改变这一点。
我想到了什么样
base = NewUser.joins(:interactions)
.where('interactions.interaction_sub_type in (?)', types)
.where('interactions.interaction_type in (?)', actions)
.limit(1000).order('users.id asc')
initial_date = base.minimum(:updated_at)
但出于某种原因,这是行不通的。看起来像ActiveRecord执行查询base
,然后再执行initial_date
。
哪些错误与您的解决方案的结果?你有错误还是什么? – nsave