Если это управляет поведением модели, то константы должны быть частью модели:
class Model < ActiveRecord::Base
ONE = 1
TWO = 2
validates_inclusion_of :value, :in => [ONE, TWO]
end
Это позволит Вам использовать встроенную функциональность направляющих:
>> m=Model.new
=> #
>> m.valid?
=> false
>> m.value = 1
=> 1
>> m.valid?
=> true
, С другой стороны, если Ваши перечисления поддержки БД, то можно использовать что-то как Перечислимый плагин Столбца .
Something like (untested):
DateTime date;
int quarterNumber = (date.Month-1)/3+1;
DateTime firstDayOfQuarter = new DateTime(date.Year, (quarterNumber-1)*3+1,1);
DateTime lastDayOfQuarter = firstDayOfQuarter.AddMonths(3).AddDays(-1);
int GetQuarterName(DateTime myDate)
{
return (int)Math.Ceiling(myDate.Month / 3.0);
}
DateTime GetQuarterStartingDate(DateTime myDate)
{
return new DateTime(myDate.Year,(3*GetQuarterName(myDate))-2,1);
}
GetQuarterName
получает «следующее» целочисленное значение номера текущего месяца / 3.
GetQuarterStartingDate
использует выходные данные из GetQuarterName
для расчета значение месяца, годовая часть исходной даты и 1, чтобы представить первый день месяца, который нужно вернуть.
(Извинения за бессмысленность, у меня грипп. :()