我有兩個模型在我的Rails應用程序(板和支付)中有表格。我想知道哪些董事會有與他們相關的付款。現在我在支付表和電子支付表中有一個has_one和belongs_to關聯設置,其中外鍵是board_id。所以付款屬於董事會和董事會有一個付款。Rails通過外鍵查詢所有對象
我想獲得所有與它們關聯的付款ID的董事會對象。我知道我可以通過撥打付款表來獲得所有具有電路板ID的支付,然後查詢這些電路板,但我想在一個數據庫查詢中執行此操作。那可能嗎?如果是的話,那個查詢在rails中是什麼樣的?
我有兩個模型在我的Rails應用程序(板和支付)中有表格。我想知道哪些董事會有與他們相關的付款。現在我在支付表和電子支付表中有一個has_one和belongs_to關聯設置,其中外鍵是board_id。所以付款屬於董事會和董事會有一個付款。Rails通過外鍵查詢所有對象
我想獲得所有與它們關聯的付款ID的董事會對象。我知道我可以通過撥打付款表來獲得所有具有電路板ID的支付,然後查詢這些電路板,但我想在一個數據庫查詢中執行此操作。那可能嗎?如果是的話,那個查詢在rails中是什麼樣的?
你既可以使用子查詢解決這個問題:
Board.where(id: Payment.select(:board_id).where.not(board_id: nil))
或者你可以inner join兩個表:
Board.joins(:payments)
兩個導致一個DB調用
它很容易與內加入:
Board.joins(:payment)
僅返回與付款關聯的主板。
當然你需要has_one :payment
在你的Board
類。
他說他有這樣的設置:「現在我有一個has_one和belongs_to關聯」 –
如果有關聯,董事會對象沒有與他們關聯的付款ID如何? – Sinstein
在rails中,它取決於關聯是如何設置的。現在我在支付表中有一個board_id,但是在board tabl @Sinstein – adamscott
中沒有payment_id,第一段很容易用代碼解釋,只有文本很難直觀。請參閱http://stackoverflow.com/questions/20543490/rails-4-left-join-getting-values-of-joined-model –