12

JBuilder を使用して、アプリケーションの JSON API 部分のビューをレンダリングしています。私が直面している問題は、DateTimes が次のようにレンダリングされていることです。

"2013-07-02T17:03:18.000Z"

...私が本当に欲しいのはこれです:

"2013-07-02T17:03:18Z"

これらの小数がどこから来ているのかわかりません...

典型的な JBuilder の方法でフィールドをレンダリングしています。

json.my_datetime_field

アプリに日付形式初期化子があります。

Date::DATE_FORMATS[:default] = '%Y/%m/%d %Z'
Time::DATE_FORMATS[:default] = '%Y/%m/%d %H:%M:%S %Z'
Date::DATE_FORMATS[:month_day_year] = '%m-%d-%Y'

ただし、これは JBuilder に影響を与えないようで、これは良いことです。API から取得した ISO8601 形式が必要です。ちなみに、私は Rails 4.0.0 final を使用しています。

4

3 に答える 3

11

アンダーレールを使う?float でのエンコードを回避するには、プロジェクトの初期化ブロックでこのメソッドを実行します

ActiveSupport::JSON::Encoding.time_precision = 0
于 2014-05-14T11:43:42.423 に答える
1

これは私にとってはうまくいきます。

/view/api/earthquakes/index.json.jbuilder

json.array!(@earthquakes) do |earthquake|
  json.extract! earthquake, :id,
                :name,
                :magnitude,
                :lat,
                :lon,
                :city,
                :region,
                :state,
                :country,
                :usgs_id,
                :usgs_url,
                :usgs_url_detail,
                :num_structures

  json.date(earthquake.date.strftime('%Y-%m-%d %H:%M:%S %Z'))

end
于 2015-04-16T21:19:42.320 に答える