有很多 : 通过 rails。如何从 id 数组中获取关联记录

has many : through rails. how to get associated records from array of ids

我已经按照 has_many:through 关系

的模型设置
class StudyLevel < ActiveRecord::Base
  has_many :events_study_levels
  has_many :events, :through => :events_study_levels
end

class Event < ActiveRecord::Base
  has_many :events_study_levels
  has_many :study_levels, :through => :events_study_levels
end

class EventsStudyLevels < ActiveRecord::Base
  belongs_to :study_level
  belongs_to :event
end

现在我想从给定的 study_levels 数组中获取事件。我能想到的一个解决方案是找到所有 study_levels,然后为每个学习级别找到所有事件。但这是非常低效的。你能分享一个可以帮助实现类似

的方法吗?
Event.find_by_study_level_ids(study_level_ids_array) 

您可以从 EventsStudyLevels 访问该信息:

Event.where(id: EventStudyLevels.where(study_level_id: study_level_ids).pluck(:event_id))