Multiple Inner Joins with Polymorphic Association

tob88

I have the following polymorphic association...

class Activity < ActiveRecord::Base
  belongs_to :owner, polymorphic: true
end

class User < ActiveRecord::Base
  has_many :activities, as: :owner
end

class Manager < ActiveRecord::Base
  has_many :activities, as: :owner
end    

I am trying to make a query whereby it only pulls out the activities where the owner (user or manager) has visible set to true.

I have figured out that if I want to do this for one of the owners, I can do this as follows...

Activity.joins("INNER JOIN users ON activities.owner_id = users.id").where(:activities => {:owner_type => 'User'}).where(:users => {:visible => true})

But I cannot figure out how to do it for both. Can anyone help?

mdesantis

This should work:

Activity.
  joins("LEFT JOIN users ON activities.owner_type = 'User' AND
                            activities.owner_id = users.id").
  joins("LEFT JOIN managers ON activities.owner_type = 'Manager' AND
                               activities.owner_id = managers.id").
  where("users.visible = ? OR managers.visible = ?", true, true)

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Rails Polymorphic Association with multiple models

From Dev

mySQL multiple inner joins

From Dev

Multiple Inner Joins - MySQL

From Dev

mySQL multiple inner joins

From Dev

SQL Multiple inner joins

From Dev

Multiple association joins query with NOT operator

From Dev

Multiple association joins query with NOT operator

From Dev

Multiple inner joins returning Error

From Dev

Multiple inner joins in MySql not working

From Dev

Inner joins selecting multiple columns

From Dev

How to use multiple inner joins

From Dev

MySQL optimize multiple inner joins

From Dev

Multiple polymorphic association on a same model in rails

From Dev

Multiple joins to same association with different aliases in Hibernate

From Dev

Multiple inner joins to get a single record by sorting

From Dev

Get data from multiple inner joins

From Dev

Create multiple INNER JOINS with Sequelize ORM

From Dev

MySQL query with multiple inner joins on same table

From Dev

Create multiple INNER JOINS with Sequelize ORM

From Dev

where condition failed on multiple inner joins in sql

From Dev

PDO multiple inner joins appear to be looping

From Dev

How to improve query performance for multiple inner joins?

From Dev

Multiple Inner Joins from same table

From Dev

How to create a hasOne association that joins on multiple foreign keys via an OR condition?

From Dev

rails polymorphic association reference

From Dev

Polymorphic association in Simpleform

From Dev

Rails: includes with polymorphic association

From Dev

What is wrong with this polymorphic association?

From Dev

Rails inverse polymorphic association