首页 > 解决方案 > Rails 通过组合字段自定义连接

问题描述

我有 2 个模型,PotentialClient并且Client. PotentialClient并且Client有一个非唯一字段:mindbody_idClient也有一个唯一字段 ,:unique_mb即等于"#{location_id}{mindbody_id}",使该字段唯一。 :location_id也存在于 上PotentialClient,但:unique_mb不是。

有没有办法加入PotentialClientClient通过,:unique_mb因为它存在Client并且PotentialClient具有生成该字段所需的所有信息?

标签: ruby-on-railsjoin

解决方案


我很确定你的:unique_mb领域不能保证是独一无二的。你最好在两个不同的领域加入他们,而不是试图制造你自己独特的两者组合。

由于您没有给出打算如何使用它的示例,因此我假设当您说要加入他们时,您实际上只是在寻找PotentialClient给定的匹配记录Client

在这种情况下,你可以这样做:

@client = Client.find(params[:id]) # or however you're finding your Client record
@potential_clients = PotentialClient.where(location: @client.location, mindbody: @client.mindbody)

如果这不是您要查找的内容,那么提供更详细的示例来说明您正在尝试实现的目标、显示您迄今为止尝试过的代码以及您收到的任何错误对您很有帮助。


推荐阅读