有很多 : 通过 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))
我已经按照 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))