active record where 複数テーブル結合

前提

// リレーション関係
class PayTransactionMonitoring < ApplicationRecord
  belongs_to :pay_transaction

方法1

// PayTransactionMonitoringインスタンスで取得できる
pay_transaction_monitorings = PayTransactionMonitoring.joins(:pay_transaction).where('pay_transactions.VM加盟店番号 = "045014348092"')

// belongs_toの関係にあるPayTransactionインスタンスも取得できる
pay_transaction_monitorings.first.pay_transaction

方法2

似たような書き方。方法1の方が簡潔でわかりやすい。

// PayTransactionMonitoringインスタンスで取得できる
pay_transaction_monitorings = PayTransactionMonitoring.joins(:pay_transaction).merge(PayTransaction.where(加盟店番号: "123"))

// belongs_toの関係にあるPayTransactionインスタンスも取得できる
pay_transaction_monitorings.first.pay_transaction

参考

http://qiita.com/merrill/items/de6eb7e899753ad3361a