微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用ActiveRecord的多个加入条件

如何解决使用ActiveRecord的多个加入条件

我有以下型号

class Electrician < ApplicationRecord
  belongs_to :user
end
class Proposal < ApplicationRecord
   belongs_to :visit
   belongs_to :electrician
end
class VisitAvailability < ApplicationRecord
  belongs_to :visit
  belongs_to :requester,foreign_key: :requested_by_id,class_name: 'User'

  scope :enabled,-> { where(state: 0) }

end

我正在尝试为Proposal添加一个范围到with_electrician_availability。它应该返回Proposals表中所有可用的visit_availabilities。在原始sql中,我想我想要这样的东西

SELECT * FROM proposals
INNER JOIN electricians ON proposals.electrician_id = electricians.id
INNER JOIN users ON users.id = electricians.user_id
INNER JOIN visit_availabilities ON (proposals.visit_id = visit_availabilities.visit_id AND proposals.requester_id = users.id)
WHERE visit_availabilities.state = 0

但是我似乎无法弄清楚如何使用ActiveRecord做到这一点。感觉我应该能够向has_many :booking_availabilities添加一个Proposal关联,但是我不确定如何使用多个联接列来实现这一点

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。