从遇到上一篇文章所描述的问题开始,在使用 Rails 的数据关联时,总会有一种弱弱的错觉:前面有坑。

没留意的时候,用起来也没感觉到什么问题,遇到问题后,变得小心翼翼了,反而是各种不明状况都遇到了。由于问题描述起来也比较繁琐,在群里面向大家咨询,并没有得到有人遇到过类似问题的响应,也没有实质的解答建议。

星哥 的建议下,又重新去查阅了 rails guide 里面的相关内容,才发现原来我是自己坑了自己一把:

  1. 当我仔细去看 rails guide 的时候才发现,之前我根本没有仔细去看这个部分的内容,基本就属于需要使用什么就去查阅什么的状态,对于 关联 稍微具体一点地知识点都没有掌握,也就更别说一个全面的认知了。

  2. 之所以最近会觉得遇到坑,起源一次把 migration 写错了,将外键与 modle 中声明的从属关系写反了。虽然很快发现了问题,但是由此也揭开了自己知识储备不足导致的恐慌,毕竟不了解就不能最有效的去运用。

  3. 上一篇文章中遇到的问题,呃,到现在依旧是个问题。它的存在使自己对 Association 的不信任感进一步加剧。

下午抽了些时间,(较为)完整的去看了 guide 的讲解,才发现 Rails 的 Association 其实是一个很了不起的功能。也根据自己的经历,总结出一些些以后在使用中需要注意的点:

  1. 尽量从环境语义上去考虑如何设置关联

  2. 最大限度的在关联的两端都声明关联

  3. 遵寻 Rails 的约定去创建关联,比如:has_and_belongs_many 的链表命名方式,外键的创建等等

  4. 在保证快速开发的基础上,去摸清并尝试 关联 一些更高级的运用,比如:条件 和 依赖,以简化业务逻辑

  5. 有效创建 migration 的关键字: references

以上,留查备用,以之自省