2011-09-04 3 views
1

나는 Rails와 Heroku가있는 초보자입니다. 내가 Heroku에 배포 한 기본 CRUD로 앱을 만들었습니다. 특정 엔터티에 날짜 속성이 있습니다. 나는이 값을 만들거나 업데이트 할 때 :로날짜 형식 Heroku에서

2011년 9월 4일

은 저장 :

2011년 4월 9일

로컬로 실행 (SQLite)이 동작이 표시되지 않습니다. 나는 문화에 대해 더 명시 적으로 필요한 경우 궁금하네요, 그래서 나는과 같이 설정/로케일/en.yml 수정 :

en: 
    hello: "Hello world" 
    date: 
    formats: 
     default: "%m/%d/%Y" 

이 어떤 영향이하지 않는 것 같습니다. 아이디어?

업데이트 : 모델 여기

<%= f.text_field :date, :value => (@entry.date.blank? ? '' : @entry.date.strftime('%m/%d/%Y')), :class => 'date' %> 

된다 :

로캘 정보 파일
class Entry < ActiveRecord::Base 
end 

답변

1

당신에게 Heroku에 사용하는 루비의 버전에 따라이 때문에 유럽 연합 (EU)의 형식을 가정 Date.parse의 수 (나는 당신이를 사용하고 있는지 확인 할이 :

> Date.strptime("09/04/2011", "%m/%d/%y") 
=> Fri, 04 Sep 2020 

1.9에서 시작 생각 이 문제가있는 경우 해당 지역의 개발 작업을위한 루비의 동일한 버전, 당신은 당신의 속성에 세터을 무시할 수 : 나는 하나의 텍스트 상자를 사용하고

class Entry < ActiveRecord::Base 
    def date=(v) 
    if v.kind_of?(String) 
     self.write_attribute(:date, Date.strptime(v.to_s, "%m/%d/%y")) 
    else 
     super 
    end 
    end 
end 
+0

로컬로 나는 1.8.7 루비를 사용하고 있습니다. 나는 Heroku가 어떤 버전을 실행 하는지를 어떻게 알 수 있는지 알 수 없다. 나는 직접 파싱하는 것이 행복합니다. 어디서/어떻게합니까? 내 기존 코드를 표시하도록 내 게시물을 업데이트했습니다. 감사! –

+0

버전에 관계없이'heroku console'에서'Date.parse'를 시도해 보면이 동작을 확인할 수 있습니다. – jdeseno

+0

콘솔 (그러한 멍청한 놈)을 알아 냈어. 물론, 그것은 EU 스타일을 파싱합니다. 무슨 일을했는지는 bamboo-mri-1.9.2에서 bamboo-ree-1.8.7로 스택을 변경하는 것입니다. 다른 의미는 모르지만이 문제는 해결됩니다. .NET에서 나왔습니다. 앱의 문화를 설정하는 간단한 방법을 찾지 못한 것에 조금 놀랐습니다. –

2

단지 어떻게 결정 여기

def create 
    @entry = Entry.new(params[:entry]) 

    respond_to do |format| 
     if @entry.save 
     format.html { redirect_to entries_path } 
     format.xml { render :xml => @entry, :status => :created, :location => @entry } 
     else 
     format.html { render :action => "new" } 
     format.xml { render :xml => @entry.errors, :status => :unprocessable_entity } 
     end 
    end 
    end 

는이다 : 여기서 컨트롤러 행동 인 날짜가 Db에 저장되는 방식이 아닌 페이지에 출력 될 때 렌더링됩니다. Db는 전달 된 날짜를 저장하는 방법을 알고 있습니다. 사용자가 date_select를 사용하여 사용자가 날짜를 선택하도록 허용하거나 텍스트 상자를 사용하고 있습니까?

+0

(그래서 내가 JS의 날짜 선택기를 사용할 수 있습니다). 양식 게시물에 '09/04/2011'이 포함되어 있습니다. –

+0

이 답변은 정확한 조언이지만 여전히 부분적인 질문입니다. 질문없이 대답 형식으로 편집해야합니다. – mislav