Ну, вы определяете метод в неправильном классе.User.active[0..5]
вызывает метод класса active
в User
и метод []
в любом классе User.active
, который я возвращаю, я предполагаю, что он возвращает массив пользователей, а Array
уже определилmethod []
, так что об этом не стоит беспокоиться.
Вы можете запутаться, думая, что квадратные скобки - это своего рода скобка для передачи аргументов функции, в то время как они не являютсяПопробуйте это:
class User
class << self
def [](values)
self.find(values)
end
end
end
Итак, если вы хотите использовать find с массивами идентификаторов, вы можете просто использовать User[1,2,3]
.