我有以下关系:
has_one
Bar has_many
Baz has_many
Baz through Bar 现在我的问题:我需要使用Foo.Baz
,但信息应该冻结/静态。
我的意思是,每当Bar.Baz
发生变化时,我都不希望Foo.Baz
发生变化。
实质上,Foo.Baz
是某种日志记录,用于在Baz
创建时描述Foo
。
我如何最好地处理这种情况?
我的第一个倾向是在Foo
和Baz
之间创建另一种关系,但这会增加大量冗余数据,因为Bar.Baz
只会偶尔发生变化。
有更好的方法吗?
答案 0 :(得分:0)
你可以保留它,然后根据时间戳创建一些范围来获取Foo.Baz,而不允许更新Bar.Baz,只是创建。所以要获得Foo.Baz,你会得到最新的
Bar.Baz when Bar.Foo == foo and Bar.baz.created_at < Foo.created_at.
我意识到这不是一个很好的解决方案,但它可能是一个起点...