-
-
Notifications
You must be signed in to change notification settings - Fork 642
Open
Description
Steps to reproduce
When there are multiple hash conditions, the generated SQL is invalid. See failing spec here: afn@bc1478d
The generated SQL is:
SELECT "legacy_mentions".* FROM "legacy_mentions" WHERE "legacy_mentions"."id" IN (SELECT "legacy_mentions"."id" FROM "legacy_mentions" LEFT OUTER JOIN "users" ON "users"."id" = "legacy_mentions"."user_id" LEFT OUTER JOIN "articles" ON "articles"."id" = "legacy_mentions"."article_id" LEFT OUTER JOIN "users" "users_articles" ON "users_articles"."id" = "articles"."user_id" WHERE (("users_articles"."company" = 1) OR ("users"."company_id" = 1)))
whereas it should be:
SELECT "legacy_mentions".* FROM "legacy_mentions" WHERE "legacy_mentions"."id" IN (SELECT "legacy_mentions"."id" FROM "legacy_mentions" LEFT OUTER JOIN "users" ON "users"."id" = "legacy_mentions"."user_id" LEFT OUTER JOIN "articles" ON "articles"."id" = "legacy_mentions"."article_id" LEFT OUTER JOIN "users" "users_articles" ON "users_articles"."id" = "articles"."user_id" WHERE (("users_articles"."company_id" = 1) OR ("users"."company_id" = 1)))
(Note company_id
versus company
.)
Expected behavior
Spec should pass
Actual behavior
Spec fails with an error
System configuration
Rails version: 6.1.0
Ruby version: 3.0.1
CanCanCan version 3.5.0 and current develop
branch
Metadata
Metadata
Assignees
Labels
No labels