【发布时间】:2012-01-04 19:52:16
【问题描述】:
好的,我在 rails 中有以下模型:
- '碎片'
- 属于分片或不属于任何事物的“现实”
- 属于现实的“空间”
- 属于空间的“属性”
我可以访问 shard.reality.space.first.properties,但如果以这种方式访问,我希望能够从属性模型中的自定义方法访问“shard”id。
有什么办法吗?
【问题讨论】:
-
有人应该指出你在这里破坏了一些严重的封装。得墨忒耳定律 (en.wikipedia.org/wiki/Law_of_Demeter) 被普遍解释为只有一个点(尽管这过于简单化了),但您尝试做的事情肯定违反了它。财产应该只知道它自己和它的成员;空间是“成员”,分片不是。我会看看你是如何构建它的,看看你是否能找到更好的方法。
标签: ruby-on-rails model associations