Как вы тогда гарантируете, что читаете время только при рендеринге json в Rails 5.2.1? - PullRequest
0 голосов
/ 09 сентября 2018

У меня проблема, я недавно обнаружил, что Ruby не может сохранить «Время ЧЧ: ММ: СС» в БД. Если вы используете тип времени в миграции на рельсах следующим образом:

class CreateParkings < ActiveRecord::Migration[5.2]
  def change
    create_table :parkings do |t|
      t.date :ArrivalDate
      t.time :ArrivalTime
      t.date :DepartDate
      t.time :DepartTime
      t.integer :NumberOfPax
      t.string :Title
      t.string :Initial
      t.string :Surname
      t.string :Email
      t.string :Waiver
      t.string :Remarks
      t.string :ABTANumber
      t.references :user, foreign_key: true

      t.timestamps
    end
  end
end

Ruby, затем сохраните запись в БД следующим образом => / HH:MM:SS

Но когда вы извлекаете данные и отображаете их как json, они отображаются с датой "2000-01-01T23: 12: 15.000Z"

следующим образом:

{
  "parking": {
    "id": 10,
    "ArrivalDate": "2018-09-19",
    "ArrivalTime": "2000-01-01T23:12:15.000Z",
    "DepartDate": "2018-09-19",
    "DepartTime": "2000-01-01T23:12:15.000Z",
    "NumberOfPax": 2018,
    "Title": "Mr Stanley",
    "Initial": "SM",
    "Surname": "Morris",
    "Email": "stanley.morris@someemail.com",
    "Waiver": "No Waiver",
    "Remarks": "I will be parking late in the evening. ",
    "ABTANumber": "HJKJKHDS123",
    "user": {
      "id": 1,
      "name": "admin",
      "email": "admin@admin.com",
      "admin": true,
      "member": true
    }
  }
}

Как сделать так, чтобы в json отображалось только время. Я прочитал, что мне нужно будет использовать {Attribute}.strftime("%H:%M:%S"). Но я не уверен, как пройтись по коллекции парковок. И преобразовать каждый из атрибутов в этот формат HH:MM:SS

Если у вас есть идеи, я был бы признателен.

1 Ответ

0 голосов
/ 09 сентября 2018

Я бы создал метод в модели Parking, например:

def formatted_arrival_time
  arrival_time.strftime("%H:%M:%S")
end

А потом в сериализаторе я бы использовал formatted_arrival_time вместо arrival_time

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...