2010-05-12 3 views
0

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

Есть ли какие-либо проблемы с миграцией, которые могут работать?

Я предполагаю ..

сценарий/генерировать миграции AddMonthsToClass BeginDate: DateTime #through ENDDATE: Дата и время

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

+0

Подтверждение об изъятии;) Невозможно завершить миграцию из коробки. Укажите, хотите ли вы добавить столбцы БД, записи или просто как-то отслеживать данные времени для другой модели? –

+0

Не совсем уверен в этих трех. Моя цель состоит в том, чтобы позволить пользователю выбирать два разных месяца, и база данных будет читать промежуток месяцев между ними. Итак (теперь я - мозговой штурм), может быть, лучше всего создать целый ряд месяцев. И выбор двух месяцев, также выбирает те, что между ними. Ах, что-то из коробки для этого? : D – Trip

+0

Что именно вам нужно делать? Сохранить месяцы в столбце db? Я не очень хорошо это понял:/ –

ответ

1

Это может помочь вам: 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 
+0

Отличный отклик! Я не могу вас поблагодарить! – Trip

Смежные вопросы