Как я могу заставить метод ruby ​​"Date.end_of_week (: monday)" работать с fixnum? например "Date.end_of_week (1)" - PullRequest
0 голосов
/ 03 марта 2012

Как я могу заставить метод ruby ​​"Date.end_of_week (: monday)" работать с fixnum?например, "Date.end_of_week (1)".

Если я попробую это (т.е.), я получу

TypeError: nil не может быть принудительно приведен к Fixnum

1.9.3p0 :001 > start_date = Time.now.to_date
 => Sat, 03 Mar 2012 
1.9.3p0 :002 > start_date.end_of_week
 => Sun, 04 Mar 2012 
1.9.3p0 :003 > start_date.end_of_week(1)
TypeError: nil can't be coerced into Fixnum

То есть день будет динамичным, поэтому в итоге я выберу пользователя, который выберет день, который я могу выделить для фиксированного значения на основе константы даты

DAYS_INTO_WEEK ={: понедельник => 0,: вторник => 1,: среда => 2,: четверг => 3,: пятница => 4,: суббота => 5,: воскресенье => 6}

1 Ответ

0 голосов
/ 03 марта 2012

Не уверен, что это самый быстрый способ, но я сделал это:

DAY_TO_SYMBOL = {0 => :monday, 1 => :tuesday, 2 => :wednesday, 3 => :thursday, 4 => :friday, 5 => :saturday, 6 => :sunday}

we_end_day = << depends on user imput >>
start_date.end_of_week(DAY_TO_SYMBOL[we_end_day])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...