Sometimes we want to use a where query on a a collection of records returned which is not ActiveRecord::Relation.Hence we get the above error as Where clause is know to ActiveRecord and not to Array.
There is a precise solution for this by using Joins.
EXAMPLE:-
Suppose i need to find all user profiles(UserProfile) which are active which is not a user(User) with an id=10.
UserProfiles.includes(:user=>:profile_pictures]).where(:active=>true).map(&:user).where.not(:id=>10)
So above query will fail after map as map will return an array which will not work with where clause.
But using joins,will make it work,
UserProfiles.includes(:user=>:profile_pictures]).where(:active=>true).joins(:user).where.not(:id=>10)
As joins will output similar records like map but they will be ActiveRecord and not an Array.