Спасибо всем, кто внес свой вклад в эту тему и помог мне понять, как проверить числовые значения. Я хотел опубликовать свои результаты о том, как обрабатывать отрицательные числа, для тех, кто также может найти эту тему при поиске ...
Примечание: моя функция требует передачи строки из-за использования Trim ().
function IsNumeric($value) {
# This function will test if a string value is numeric
#
# Parameters::
#
# $value - String to test
#
return ($($value.Trim()) -match "^[-]?[0-9.]+$")
}
Возможно, вы ищете
cars = Vehicle.find_all_by_num_wheels(4)
. Динамические методы find_by_
возвращают только один элемент, и вам нужно использовать find_all_by_
, чтобы вернуть несколько.
Если вам всегда нужны все машины, вы должны вместо этого использовать find_all
:
cars = Vehicle.find_all_by_num_wheels(4)
Вы также можете превратить одиночный Автомобиль
в массив с:
cars = [cars] unless cars.respond_to?(:each)
Именованная версия с ограниченной областью действия для вашей проблемы
Vehicle.scoped(:conditions => { :num_wheels => 4 } ).each { |car| car.inspect }
Вы можете делать это для получения массивов каждый раз:
cars = Vehicle.find(:all, :conditions => {num_wheels => 4})
Я не думаю, что у вас есть цикл, который будет проверять, является ли объект массивом.
Другое решение:
for i in (1..cars.lenght)
puts cars[i].inspect
end
(не проверял, может сломаться, чтобы проверить длину строки. Сообщите мне, если это так)