Ruby on rails 改进两个相似的查询
我有以下疑问:Ruby on rails 改进两个相似的查询,ruby-on-rails,ruby,ruby-on-rails-4,activerecord,Ruby On Rails,Ruby,Ruby On Rails 4,Activerecord,我有以下疑问: initial_date = NewUser.joins(:interactions) .where('interactions.interaction_sub_type in (?)', types) .where('interactions.interaction_type in (?)', actions) .limit(1000).order('users.id asc').mini
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)
除了最小值
和最大值
我正在尝试改进此代码,但不知道如何更改此代码。
我想到了类似的事情
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)
但出于某种原因,这不起作用。AccVIECORD似乎执行了对<代码> BASE<代码>的查询,然后在<代码>初始日期> /代码>上执行。 < P>您是否考虑使用A:
可以像这样使用:
initial_date = NewUser.with_interactions(types, actions).minimum(:updated_at)
last_date = NewUser.with_interactions(types, actions).maximum(:updated_at)
你是否考虑使用A:
可以像这样使用:
initial_date = NewUser.with_interactions(types, actions).minimum(:updated_at)
last_date = NewUser.with_interactions(types, actions).maximum(:updated_at)
我已经很久没有在Rails上工作了,但我想尝试一下
NewUser.joins(:interactions)
.select("MIN(updated_at) AS initial_date, MAX(updated_at) AS last_date")
.where('interactions.interaction_sub_type in (?)', types)
.where('interactions.interaction_type in (?)', actions)
.limit(1000).order('users.id asc')
它将返回一个包含两列的结果,
initial\u date
和last\u date
我已经很久没有在Rails上工作了,但我想试一试
NewUser.joins(:interactions)
.select("MIN(updated_at) AS initial_date, MAX(updated_at) AS last_date")
.where('interactions.interaction_sub_type in (?)', types)
.where('interactions.interaction_type in (?)', actions)
.limit(1000).order('users.id asc')
它将返回一个包含两列的结果,
initial\u date
和last\u date
您的解决方案有什么问题?你有错误吗?你的解决方案有什么问题?你有什么错误吗?正确的和Rails
的方法。这太完美了!我怎么没想过呢?正确而且Rails
的方法。这太完美了!我怎么没想过呢?