1

데이터베이스에있는 것처럼 레일스 3에 날짜 시간을 표시하는 방법이 있습니까?날짜 표시하기 변환없이 데이터베이스에있는 시간과 같이 레일에 3.2 시간 있음

:created_at

로 저장 "2014년 11월 25일 10 : 55 : 56.445949"데이터베이스에

합니다. 난 레일 애플 리케이션에서 사방에 동일한 형식이 필요합니다. 보기에서 created_at_before_type_cast을 사용했지만 json 응답에 실패했습니다. 기본 범위를 사용할 수 있습니까? 그렇다면 어떻게? 고맙습니다.

답변

0

당신은 날짜를 표시하는 방법을 지정 strftime을 사용하고 모델에 선택한 형식으로 반환하는 새 속성 정의 할 수있는 다양한 모든 기술하는 this link

def created_at_formatted 
    self.created_at.strftime("%Y-%M-%D %H:%M:%S.%L") 
end 

이 봐를 표현.

0

나는 Active Model Serialization gem을 사용하는 것을 선호한다. 원하는대로 json을 생성 할 수있는 힘을 줄 것이다! 그것의 아주 강력하고 사람들은 지금 그것을 사용하고 있습니다. 당신의 시리얼 파일에서

https://github.com/rails-api/active_model_serializers

:

자신의 데이터를 정의 할 수 있습니다. Post 모델이 있고 그것에 대한 json 응답 모델을 생성하려고한다고 가정 해보십시오. 당신이 선언 할 때 컨트롤러에 지금

class PostSerializer < ActiveModel::Serializer 
    attributes :id, :date_for_json 

    # look up :subject on the model, but use +title+ in the JSON 
    attribute :subject, :key => :title 
    has_many :comments 
    def date_for_json 
     object.created_at.strftime("Printed on %m/%d/%Y") #=> "Printed on 11/19/2007" 
    end 
end 

: 당신은 다음을 수행 할 수 있습니다

render json: @products 

이 당신에게이 같은 출력을 줄 것이다 :

[{id: 1, date_for_json: "Printed on 11/19/2007", id: 2, date_for_json: "Printed on 11/19/2007"}, ....] 

글쎄, 난 그냥 공유 가장 좋은 방법은 나 자신을 위해 접근하는 것이 었습니다. 이것은 당신에게 당신의 api를 디자인하는 좋은 아이디어를 줄 것입니다.

+0

이 downvote에 대한 이유가 무엇입니까? 그래서 나는 그들을 생각하고 내 대답을 고치거나 제거 할 수 있습니다! – Rubyrider

+0

이것을 downvote 할 이유가 없습니까? +1 나와 내 – ediblecode

+0

누군가가 downvoted :(나는 방금 모범 사례라고 생각하는 것을 공유하려고 :( – Rubyrider