Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql ActiveRecord查询唯一的所有第一项都有许多关联_Sql_Ruby On Rails_Activerecord - Fatal编程技术网

Sql ActiveRecord查询唯一的所有第一项都有许多关联

Sql ActiveRecord查询唯一的所有第一项都有许多关联,sql,ruby-on-rails,activerecord,Sql,Ruby On Rails,Activerecord,我在创建Rails ActiveRecord查询时遇到问题,该查询根据唯一的活动检索第一项,考虑到创建时间的内部限制。我还需要ItemStat中可用的值,这就是为什么包含 当前的方法实现是可行的,但它很差,需要优化 这是我的模拟模型: 活动: class Activity < ActiveRecord::Base has_many :items end 谢谢你的帮助 class Item < ActiveRecord::Base belongs_to :activity

我在创建Rails ActiveRecord查询时遇到问题,该查询根据唯一的活动检索第一项,考虑到创建时间的内部限制。我还需要ItemStat中可用的值,这就是为什么包含

当前的方法实现是可行的,但它很差,需要优化

这是我的模拟模型:

活动:

class Activity < ActiveRecord::Base
  has_many :items
end
谢谢你的帮助

class Item < ActiveRecord::Base
  belongs_to :activity
  has_one :item_stat
end
class ItemStat < ActiveRecord::Base
  belongs_to :item
end
def self.first_items_by_unique_activity(activities_id, time_begin, time_end)
  items = Item.includes(:item_stat).where(:activity_id => activities_id, :created_at => time_begin..time_end)

  #make the first item unique by activity
  uniques = {}
  items.each do |item|
    identifier = item.activity_id
    uniques[identifier] = item if uniques[identifier].nil?
  end   

  uniques.values
end