Я бы действительно держался подальше от проверки буквальной версии Rails. Вы просто настраиваете себя на провал, когда выходит Rails 4.
Если вам интересно, принимает ли метод параметр или нет, используйте это:
p = (Person.method(:scoped).arity == 1) ? Person.scoped({ }) : Person.scoped
Метод arity
в классе или модуле возвращает количество требуемых параметров или отрицательное значение, если это несколько произвольное число, как в случае, когда некоторые являются необязательными.
Как говорится, в Rails 2.3.8, похоже, вам не нужно передавать какой-либо параметр в scoped
.