Ruby on rails 使用备用属性值修改或创建纸样版本

Ruby on rails 使用备用属性值修改或创建纸样版本,ruby-on-rails,ruby,paper-trail-gem,Ruby On Rails,Ruby,Paper Trail Gem,我有一个有开始日期和结束日期的模型 创建版本时,如果旧的结束日期在新的开始日期之后,则纸质跟踪版本中的结束日期应设置为更新记录的开始日期 在sudo代码中,这可能看起来像 (不起作用,我不希望在创建版本后修改它) 序列看起来像这样 创建记录 record: start_date=2021, end_date=nil record: start_date=2022, end_date=2023 version1: start_date=2021, end_date=2022 record: s

我有一个有开始日期和结束日期的模型

创建版本时,如果旧的结束日期在新的开始日期之后,则纸质跟踪版本中的结束日期应设置为更新记录的开始日期

在sudo代码中,这可能看起来像

(不起作用,我不希望在创建版本后修改它)

序列看起来像这样

创建记录

record: start_date=2021, end_date=nil
record: start_date=2022, end_date=2023
version1: start_date=2021, end_date=2022
record: start_date=2024, end_date=2037
version2: start_date=2022, end_date=2024
version1: start_date=2021, end_date=2022
更新记录

record: start_date=2021, end_date=nil
record: start_date=2022, end_date=2023
version1: start_date=2021, end_date=2022
record: start_date=2024, end_date=2037
version2: start_date=2022, end_date=2024
version1: start_date=2021, end_date=2022
更新记录

record: start_date=2021, end_date=nil
record: start_date=2022, end_date=2023
version1: start_date=2021, end_date=2022
record: start_date=2024, end_date=2037
version2: start_date=2022, end_date=2024
version1: start_date=2021, end_date=2022

rails 6.1,paper_trail 12

我建议保持Papertrail行为不变,这意味着它将跟踪每个字段的值更改,而不需要任何额外的自定义逻辑来覆盖值,从而中断回滚到版本等的接口


相反,我会使用
meta
来存储和检索模型所需的任何自定义数据

谢谢,meta很有用。我所要做的就是在具体化后替换不正确的数据