我發送了基於兩個表的Rails AREL查詢結果的json響應。響應包括兩個時間戳列:updated_at和updated_at_table_2。我重寫ActiveSupport :: TimeWithZone.as_json方法以獲取JSON所需的日期時間格式。同樣的方法在來自加入表的Rails 3 + Postgres + JSON時間戳列未調用ActiveSupport :: TimeWithZone.as_json
http://stackoverflow.com/questions/2937740/rails-dates-with-json
我當前JSON響應被示出爲: { 「的updated_at」: 「2012年10月26日22時04分07秒-0400」, 「updated_at_table_2」:「2012-10 -27 02:04:07.463015「 }
我希望它們相同。我依靠下面的Rails代碼來生成json。
render :json => { :customer_order => @customer_order }
其中@custoemr_order來源於:
CustomerOrder.select(%Q[
updated_at,
c.updated_at as updated_at_table_2
]).
joins(%{ as co inner join customers as c on (co.customer_id = c.id)
問題:我怎麼能告訴Rails 3處理as_json爲updated_at_table_2作爲的updated_at列以同樣的方式?
任何建議/指針都很棒。
注:我發現這篇文章詢問有關同樣的根問題(雖然不是關於json)沒有好的解決方案。 :
http://stackoverflow.com/questions/12067173/rails-postgres-not-returning-timezone-info-on-column-from-joined-table
爲什麼不讓服務器以UTC的方式工作,向客戶端發送ISO 8601時間戳字符串,並讓客戶端應用需要的任何時區調整? –
@ muistooshort同意!我希望我可以在瀏覽器客戶端使用Rails默認格式,如「2012-10-27 02:04:07.463015」。但是,Safari不會在Date對象中接受它,我需要在瀏覽器客戶端處理它(儘管Chrome工作正常)。我認爲在服務器端正確格式化時間戳字符串會更容易。 – GeorgeW