проблемы с преобразованием даты при использовании rails 3.0.7 и ruby ​​1.9.2 - PullRequest
4 голосов
/ 19 июня 2011

Я использую DatePicker для вставки даты в мою форму, которая, конечно, возвращает дату в контроллер в виде строки.проблема, когда я пытаюсь преобразовать эту строку в дату, я получаю сообщение об ошибке «недопустимая дата»

Date.parse(params[:abc][:date])

Чтобы проверить, правильно ли я делаю, я написал следующееПрограмма ruby:

string_date = "06/18/2011"
date = Date.parse(string_date)
puts date

Это прекрасно работает.Но когда я пытаюсь сделать то же самое в моем контроллере rails, он выдает неверную ошибку даты.

, пожалуйста, помогите.

1 Ответ

6 голосов
/ 22 июня 2011

Когда я делаю это в моей консоли Rails 3.1:

date = Date.parse("06/18/2011")

, я получаю исключение "ArgumentError: неверная дата".Тем не менее, он отлично работает с датой ISO-8601 :

date = Date.parse('2011-06-18')

Так что, возможно, у вас есть проблема с локалью.Возможно, ваш сценарий использует стандартную настройку локали (которая, вероятно, является некоторой локалью США, судя по формату даты), но ваш сервер, вероятно, использует что-то другое.

Попробуйте изменить формат даты в jQuery datepicker к чему-то стандартному и однозначному, добавив это:

dateFormat: 'yy-mm-dd'

к параметрам DatePicker.По умолчанию средство выбора даты - 'mm/dd/yy', а класс Дата в Ruby , похоже, не нравится без специальной настройки локали.

...