Я делаю API, который обслуживает недельные календари (с понедельника по воскресенье) в формате JSON. Прямо сейчас каждый недельный календарь имеет атрибуты «имя» (строка), «start_date» (объект времени, относящийся к понедельнику, в который начинается календарь). Я пытаюсь использовать драгоценный камень jbuilder, который поставляется с Rails.
Проблема:
1) Calendars GET users/user_id/calendars/calendar_id serves JSON with information about the calendar
Failure/Error: expect_json({name: calendar.name, start_date: Date.new(2015, 3, 2).strftime('%Y%m%d')})
expected: "20150302"
got: "2015-03-02T00:00:00.000Z"
(compared using ==)
# ./spec/requests/calendars_spec.rb:14:in `block (3 levels) in <top (required)>'
Я хочу немного изменить формат, в котором выводится start_date, потому что тогда с ним будет проще иметь дело во внешнем интерфейсе. Я знаю, как это сделать (Time.now.strformat(%y%m%d) или что-то еще), но я не знаю, как это сделать в контексте jbuilder. Это то, что у меня есть в моем файле jbuilder:
json.extract! @calendar, :name, :start_date
Я пробовал много синтаксиса из документов построителя, но все они, похоже, применимы к случаям, когда я обслуживаю массив JSON. В этом случае я пытаюсь предоставить JSON-представление одной модели.
Мой первый вопрос о stackoverflow, поэтому я надеюсь, что это относительно ясно. Проверьте ожидание представления о том, чего я хочу.