根据选定的时间戳重用相同的模型及其关联集

问题描述 投票:0回答:0

在专注于学校管理系统的 Rails 6 应用程序中,我正在寻找一种方法,使任何学校创建的结构都可以在每个学年再次重用。

泽维尔学校 - 2022 学年

  • has_many :教室(1A..1C 级,...直到 10A...10C 级)
    • has_many:相册(考试日、第一天、科学博览会、运动会...等)
    • has_many:导师(Mr.Json、Mrs Smith...等)
    • 有_很多:学生

如果上述模型结构是由学校为 2022 年创建的。对于下一个即将到来的 2023 年,他们可以重复使用 2022 年的结构吗? 假设我添加了一个新的组织关系 own_to org_year(2021、2022、2023...等等),如何在不重新创建 2023 年每个模型及其关联的情况下做到这一点,因为 2023 年的 A 类将是2022 年同一 A 级的专辑有所不同,但无论年份如何,专辑仍然相同。

如何实现这一目标?

我想尝试papertrail,但这太过分了。

我的解决方案 - 如果我为组织/学校模型添加

belongs_to :academic_year
,那么我可以获得指定学年的所有数据,然后通过点击显式插入查询来重新生成所有内容。

old_school_structure = AcademicYear.get_school_data("2022")
// regenerate new set for new year
new_school_structure = AcademicYear.set_school_data("2023")

可以使用ActiveRecord::Base#clonehttps://github.com/moiristo/deep_cloneable, 但是,不确定这是否适用于具有大量教室和相册的大型学校的大型关联的大型数据集。

有什么建议吗?

ruby-on-rails ruby ruby-on-rails-4
© www.soinside.com 2019 - 2024. All rights reserved.