Вы можете добавить :allow_nil => true
к вашему validates_numericality_of
.
validates_numericality_of :a, :only_integer => true, :allow_nil => true,
:message => "can only be whole number."
Вы также можете использовать опции greater_than_or_equal_to
и less_than_or_equal_to
, если вы просто хотите использовать одну проверку:
validates_numericality_of :a, :only_integer => true, :allow_nil => true,
:greater_than_or_equal_to => 1,
:less_than_or_equal_to => 999,
:message => "can only be whole number between 1 and 999."
На самом деле нет ни одного проекта, который бы дублировал все функции Trac.
Вот пара приложений PHP, которые вы могли бы посмотреть, чтобы узнать, делают ли они то, что вам нужно:
Попробуйте: http://www.jotbug.org/jotbug/wiki/OverView
InDefero - это клон кода Google на PHP.
Он не такой зрелый, как Trac или Redmine, но похоже, что идет активная разработка, и многие функции уже реализованы и работают.
Думаю, что этот ответ слишком запоздал, но нам попадались форки старого sourceforge, которые довольно функциональны и стабильны. Но у них есть свои особенности при установке или запуске. Но это очень хорошие инструменты, на которые стоит взглянуть.
Гфордж имеет коммерческий характер и является одним из старейших.
Fusionforge недавно вышедший из Gforge
Codendi разработан Xerox и теперь имеет открытый исходный код. Считаю, что это одна из самых многофункциональных (с некоторыми причудами в установке и определенными дизайнерскими решениями)
PS: ой, не могу опубликовать более 1 ссылки как новую. Можно просто добавить .org tld к названиям двух других инструментов.
РЕДАКТИРОВАТЬ : Я пропустил один - Чоу . Он построен на Cakephp и довольно хорош. Я откладывал некоторые исправления, чтобы заставить его работать на виртуальном хостинге.