3 つのテーブルがありpayment_logs
、sourcings
Railspurchasings
アプリに含まれています。payment_log はソーシングまたは購入のいずれかに属しますが、同時に両方には属しません。project_id
調達と購買の両方にコルがあります。all payment_logs with its project_id = project_id_search
(検索ページから渡された project_id_search)をピックアップします。また、返される結果セットとして ActiveRecord が必要です。payment_logs が ActiveRecord の結果セットを保持していると仮定した場合の個々のクエリは次のとおりです。
ソースの project_id = project_id_search を持つすべての payment_logs を選択します
payment_logs = payment_logs.joins(:sourcing).where("sourcing.project_id = ?", project_id_search)
購入の project_id = project_id_search を持つすべての payment_logs を選択します
payment_logs = payment_logs.(:purchasing).where("purchasings.project_id = ?", project_id_search)
project_id = project_id_search であるすべての payment_logs を取得するには、1 と 2 を結合する必要があります。それを達成する正しい方法は何ですか?rails で union が見つからず、find_by_sql が必要としない配列を返します。ありがとう。