我有两个模型,我的rails应用程序中有表格(电路板和付款)。我想知道哪些董事会有与他们相关的付款。现在我在付款和董事会之间设置了has_one和belongs_to关联设置,其中外键是我的付款表中的board_id。因此,付款属于董事会,董事会已付款。
我希望获得具有与之关联的付款ID的所有董事会对象。我知道我可以通过拨打付款表来获得所有具有董事会ID的付款,然后查询这些董事会,但我想在一个数据库查询中执行此操作。那可能吗?如果是这样,那个查询在rails中会是什么样子?
答案 0 :(得分:1)
您可以使用子查询解决此问题:
Board.where(id: Payment.select(:board_id).where.not(board_id: nil))
或者你可以inner join这两个表:
Board.joins(:payments)
两者都导致一次数据库调用
答案 1 :(得分:0)
内部联接非常简单:
Board.joins(:payment)
仅返回付款关联的单板。
当然,您的has_one :payment
课程需要Board
。