簡體   English   中英

Ruby on Rails:如何使用ActiveRecord對具有兩個外鍵引用的表進行查詢

[英]Ruby on Rails: How to do a query on a table having two foreign key references with ActiveRecord

我有三種模式:客戶,銀行和賬戶。 每個客戶都可以擁有多個賬戶,銀行也是如此。

class Customer < ActiveRecord::Base
has_many :Accounts

class Bank < ActiveRecord::Base
has_many :Accounts

Account < ActiveRecord::Base
belongs_to :Customer, :foreign_key => 'customerID'
belongs_to :Bank, :foreign_key => 'bankID'

如果我想找到客戶傑克的所有賬戶,我可以做到

Customer.find_by_name('jack').Accounts

如果我想查找花旗銀行的所有賬戶,那么我可以查詢

Bank.find_by_name('Citi').Accounts

我的問題是如何通過ActiveRecord找到屬於Citi銀行的Customer Jack帳戶? 有一些方法可以顯式生成SQL語句,但我想知道如何以通用方式對具有相同關系的其他模型執行類似的查詢。

accounts = Account.joins(:bank, :customer)
                  .where( banks: { name: "Citi" }, customers: { name: "Jack" } )

我想我的復數銀行/銀行,客戶/客戶是正確的。 如果它第一次不起作用,請在控制台中嘗試 - 按階段構建,首先連接,然后在where位。

這樣做的好處是只能進行一次SQL調用。

rails查詢指南非常有用 - http://guides.rubyonrails.org/active_record_querying.html

bank = Bank.find_by_name('City')
accounts = Customer.find_by_name('jack').accounts.where(:bank_id => bank.id)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM