Patch #28243

Consistent interface for Principal.member_of and not_member_of

Added by Alexander Oleynikov 7 months ago.

Status:NewStart date:
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:-
Target version:-

Description

Principal model has the following two scopes: member_of and not_member_of, both of them expect project or collection of projects as an argument. The problem is that given

projects = Project.where(:name => 'My Project')
you'll get correct results from
Principal.member_of(projects)
, but an exception will be thrown if you'll try to run
Principal.not_member_of(projects)
. That's because not_member_of puts its argument into an array if it's not a subclass of Array (which Project::ActiveRecord_Relation is not, though it knows how to #map).

I think one should be able to call both member_of and not_member_of with any kind of project collection, not just Array, and both of them should process arguments in the same way. So I provide a patch for that.

principal.diff Magnifier (2.93 KB) Alexander Oleynikov, 2018-02-25 20:04

Also available in: Atom PDF