Дефолтные даты в date_select
Допустим, есть задача сделать на сайте раздел в котором будут публиковаться акции которые действуют 2 месяца, а потом меняются. Чтобы не смущать пользователей правильнее было бы публиковать и убирать акции во время их начала и завершения.
Самый короткий путь это добавить в модель два поля, назовем их date_on:date date_off:date(тип поля естественно date).
В принципе на этом можно остановиться, но если представить, что каждый раз прийдется устанавливать значения в 6 полях, становиться дурно(особенно если представить например 20 акций или 50).
Упрощаем задачу:
<%= f.date_select :date_on, :default => {:year => Time.now.year, :month => @month_on, :day =>"1"} %>
<%= f.date_select :date_off, :default => {:year => Time.now.year, :month => @month_off, :day =>"1"} %>
Осталость только вычислить месяц:
def month_discount
@month_on = Time.now.month
if Time.now.day > 10
@month_on += 1
end
if @month_on > 10
@month_off = @month_on + 2 - 12 #чтобы понятнее был ход мысли.
else
@month_off = @month_on + 2
end
end