我正在将一个非常古老的遗留应用程序从 PHP 移植到 rails,并且遇到了一些我不确定如何以“正确”RoR 方式实现的功能。
基本上,我们有一个收集潜在客户的注册表单,潜在客户的属性之一是他们的居住州,例如;阿拉斯加、佛罗里达等
我们也有客户登录后端并可以检索潜在客户列表。这些客户的列表按状态过滤,他们的“允许”状态与他们的帐户相关联。
早在我来到这里之前就编写的原始 PHP 应用程序使用一种相当复杂的方法来为客户“拥有”的每个州创建一行,这意味着对于每个拥有亚利桑那州的客户,亚利桑那州都有一行。这个状态交叉引用表变得相当大,并且当 PHP 代码基于这些查找解析客户时,它创建了一些讨厌的嵌套循环。
我想过制作名为States的rails模型,让一个客户有很多州,一个州有很多潜在客户关系,但必须有更好的方法。
另一种选择是将状态列表保存为每个客户的数组,然后将该数组保存为一行中的文本,然后使用数组查询数据库,或者为每个客户记录的每个状态创建一行,并让每个状态与开启或关闭状态。
我觉得我缺少 rails 的内置功能,因为这似乎是一种相当常见的关系类型。