-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is needed
Description
Expected Behaviour
Only 1 SQL query will be executed
administrators = Administrator.eager_load(:permisi_roles)
administrators.first.permisi_roles.first # Permisi::Backend::ActiveRecord::Actor
administrators.last.permisi_roles.first # Permisi::Backend::ActiveRecord::Actor
Actual Behavior
class Administrator < ApplicationRecord
include Permisi::Actable
has_one :permisi_actor, as: :aka, dependent: :destroy, class_name: "Permisi::Backend::ActiveRecord::Actor"
has_many :permisi_actor_roles, through: :permisi_actor, source: :aka, source_type: "Administrator"
has_many :permisi_roles, through: :permisi_actor_roles, source: :permisi_actor
...
when I tried to call #permisi_roles
it return this
$ Administrator.first.permisi_roles
Administrator Load (1.5ms) SELECT "administrators".* FROM "administrators" ORDER BY "administrators"."id" ASC LIMIT $1 [["LIMIT", 1]]
Permisi::Backend::ActiveRecord::Actor Load (2.1ms) SELECT "permisi_actors".* FROM "permisi_actors" INNER JOIN "administrators" ON "permisi_actors"."aka_id" = "administrators"."id" INNER JOIN "permisi_actors" "permisi_actors_permisi_roles" ON "administrators"."id" = "permisi_actors_permisi_roles"."aka_id" WHERE "permisi_actors_permisi_roles"."aka_id" = $1 AND "permisi_actors_permisi_roles"."aka_type" = $2 AND "permisi_actors"."aka_type" = $3 AND "permisi_actors_permisi_roles"."aka_type" = $4 [["aka_id", 1], ["aka_type", "Administrator"], ["aka_type", "Administrator"], ["aka_type", "Administrator"]]
[#<Permisi::Backend::ActiveRecord::Actor:0x00007f5b2004a290
id: 1,
aka_type: "Administrator",
aka_id: 1,
created_at: Mon, 16 Aug 2021 14:14:01.563540000 +07 +07:00,
updated_at: Wed, 08 Sep 2021 16:45:21.564520000 +07 +07:00>]
In this case, it's returning the Permisi::Backend::ActiveRecord::Actor
not Permisi::Backend::ActiveRecord::Role
Is there a built-in way to be able to do the same that I'm trying to achieve? Thanks!
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is needed