如何存储我想要克隆的参考对象?使用Singleton?

时间:2009-12-14 18:44:27

标签: ruby-on-rails clone

情况:

  • 项目资源有许多资源A每个资源都有很多资源B
  • 当创建一个新项目时,它应该已经从资源A的克隆开始,其中包含资源B的克隆
  • 应该有一个参考项目,其资源A和B(通过A)是从
  • 克隆的
  • 克隆已完成,因为这样新项目可以在不更改参考项目的情况下更新其资源A和B,反之亦然

问题:

  • 如何在Rails中实现?

思路:

  • 实现单例类''ReferenceProject<项目''继承自Project
    • 但STI只会因为一个对象而过度?
  • 向Project引入新列“is_reference_project”
    • 但如何确保只有一个?

感谢任何输入! duddle

1 个答案:

答案 0 :(得分:0)

我现在这样做:

  • 向Project添加名为“is_reference”(:boolean)
  • 的列
  • 根据以下方式在模型级别验证同时只有一个:
  • 为Project模型添加named_scopes
  • 添加在named_scope上运行的ReferenceProjects控制器