2016-05-14 5 views
1

I持って、次のモデルRailsのActive Recordの - 呼び出しDistict行

influencers has_many influencer_authorizations 
influencer_authorizations has_many influencer_metrics 

を次のような関係は、私が最新influencer_metrics内のすべてのinfluencer_authorizationsのカウントを取得したいです

influencers (id, name, ..) 
influencer_authorizations (id, influencer_id, ...) 
influencer_metrics (id, influencer_authorization_id, date, count) 

DATEと合計して合計のフォロワーを表示します。influencer

何を試していますか

検索すべての今、私はinfluencer_authorizationsは技術的には、各influencer_authorizationsのためにそれが戻っ合計私は計算したい1行を与える必要があり、すべての最新の日付の行を見つけようとしています

influencer_authorizations = InfluencerAuthorization.where(influencer_id: influencer.id).pluck(:id) 

承認のID。

total_followers = InfluencerMetric.where(influencer_authorization_id: influencer_authorizations).order('metrics_date DESC').first 

ただし、現在すべての行が返されます。日付は手間がかかります。それぞれinfluencer_authorizations最後に取得された日付は時々異なる場合があります。だから我々はそれぞれ最新のmetricsレコードが必要ですinfluencer_authorizations

答えて

1

これはおそらくあなたが探しているものかもしれませんか?

言葉の一部がスキーマの関係から逆転しているように、私があなたが説明したクエリについてはっきりしていません。それは出発点かもしれない。

予期したとおりに動作しない場合は、.limit(1)部分を削除して返された内容を確認してください。あなたがゲームをするなら、そこから行くことができます。

+0

基本的には、インフルエンサーの全フォロワーが欲しいです。 'facebook'、' twitter'などのような様々な権限のための最新のクロールされたデータに基づいています –

関連する問題