2017-03-15 8 views
0

私はクエリ2テーブル、資格情報と統合を試しています。複数の条件でクエリを結合するレール

すべての資格情報レコードWHERE user_id == current_user.idを取得します。私はまた、すべての統合レコードWHERE name == "Twitter"を検索したい。

直接実行され、出力[[4, "Twitter"][3,"YouTube"]]

Credential.joins(:integration).where(user_id: current_user.id).pluck(:id, :name) 

直接以下のクエリ以下のクエリを実行し、[4, "Twitter"]を生産することになってではなく、それはエラーが発生しています。

Credential.joins(:integration).where(user_id: current_user.id).where(integration: {name: 'Twitter'}).pluck(:id, :name) 

ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: missing FROM-clause entry for table "integration" 
LINE 1: ...ration_id" WHERE "credentials"."user_id" = $1 AND "integrati... 

最終的に、残りのコードでどのような統合を使用するかをホワイトリストに入れようとしています。 joins引数の複数形を使用すると、Railsはクエリを拒否します.joins(:integrations)

+0

「どこで(統合:{..})」は複数形で動作しますか? – Iceman

+1

うわー。それはうまくいった!ありがとうございました!あなたが解決策を投稿すれば、私はあなたにポイントを与えるでしょう! – HashRocketSyntax

+0

うまくいき、答えを投稿しました – Iceman

答えて

1

where句に複数のバージョンを使用してください。

where(integrations: {..}) 

Credential.joins(:integration) 
    .where(user_id: current_user.id) 
    .where(integrations: {name: 'Twitter'}) 
    .pluck(:id, :name) 
関連する問題