【问题标题】:Rails Nested Joins ConditionRails 嵌套连接条件
【发布时间】:2020-04-16 18:12:56
【问题描述】:

对不起,我对 Joins 不满意。

这里是场景

我有三个模型 User、Account、Opportunity

这是它们的关联方式

用户有一个账户,账户有一个机会

例如: 我需要找到类型为“New”的 Opportunities 并拥有类型为“Driver”的用户

Opportunity.joins(account: :user).where(account: {user: {user_type: "Driver"}}).where(type: "New")

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 activerecord rails-activerecord


    【解决方案1】:

    你可以用下面的方法做到这一点

    Opportunity.joins(account: :user).where('opportunities.type = ? AND users.type = ?','New','Driver')
    

    【讨论】:

    • 只是要补充一点,您的尝试很接近Opportunity.joins(account: :user).where(users: {user_type: "Driver"}).where(type: "New") 在关联上写 where 时,您必须指定表的名称,在大多数情况下(应该是)复数形式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    • 2013-03-03
    相关资源
    最近更新 更多