Like: ruby, ruby on rails, macosx, apple, textmate, linux, git, gity, ubuntu, gnome 2, Dub FX, Dropkick Merphys, android, google, The black keys, Prawn(rails), epub, vim,


Текст

дек 1, 2010
@ 11:36 am
Постоянная ссылка

Дефолтные даты в 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