Этот эпизод Railscasts действительно был разработан для баз данных, которые не поддерживают массивы как нативные типы (что делает Mongoid).Затем вы можете просто создать область, которая использует один из критериев запроса массива .
Например:
class User
include Mongoid::Document
field :email
field :roles, :type => Array
ROLES = %w[admin moderator author]
class << self
def with_role(*args)
any_in(:roles => args)
end
end
end
Этот пример позволит вам передать либоодна роль User.with_role("admin")
или массив ролей User.with_role("moderator", "author")
, причем последние возвращают пользователей, которые являются модераторами или авторами.