Миграция рельсов, которая определяет расстояние между двумя месяцами ..? - PullRequest
0 голосов
/ 12 мая 2010

Я хотел бы сделать два выпадающих. время начала и время окончания. В частности, мне нужны только месяцы. Я хотел бы, например, выбрать январь, а затем март, а затем прочитать в базе данных, что это два месяца плюс февраль.

Есть ли какая-либо готовая миграция, которая могла бы работать?

Я думаю ...

сценарий / создание миграции AddMonthsToClass beginDate: datetime #thound endDate: datetime

Я заранее прошу прощения, если мой вопрос звучит запоздало! Сожалею! : D

1 Ответ

1 голос
/ 12 мая 2010

Это может вам помочь: http://www.francisfish.com/getting_the_number_of_months_between_two_dates_in_rubyrails.htm

После того, как вы получите количество месяцев, вы можете получить названия месяцев из этого:

months = ["", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
months[start_date.month, number_of_months]

например
месяцы [Time.now.month, 5] => ["Май", "Июнь", "Июль", "Август", "Сентябрь"]

редактирование:
Вместо этого вы можете использовать:

Date::MONTHNAMES[start_date.month, number_of_months]

редактирование:
Или, если вы получите номера месяцев в вашем теге выбора, вы можете просто использовать:

Date::MONTHNAMES[start_month_num, end_month_num]

но это не получится, если end_month_num меньше чем start_month_num

Это должно работать:

if start_month <= end_month
  Date::MONTHNAMES[start_month..end_month]
else
  Date::MONTHNAMES[end_month..12] + Date::MONTHNAMES[1..start_month]
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...