2010-08-08 7 views
0

안녕Rails에서 날짜별로 검색하는 가장 좋은 방법은 무엇입니까?

레일즈에서 간단한 검색을 구현하여 동일한 날짜의 모든 모델을 검색하는 가장 좋은 방법은 무엇입니까?

예 : 23-10-1975에 생일 날짜가있는 모든 고객을 검색합니다. 날짜 형식입니다.

즉 당신이 자신의 생일 오늘이있는 모든 사용자를 축하 할 가정

create_table "customer", :force => true do |t| 
    t.string "f_name" 
    t.string "m_name" 
    t.string "l_name" 
    t.date  "date_of_birth" 
end 

답변

3

? 글쎄, 난 지금 DEV-시스템에없는, 그래서 나는 그것을 테스트 할 수 없습니다,하지만이 같은 갈 것이다 :

@bday_customers = Customer.find(:all, :conditions => { :birthday => Date.today }) 

또는

@bday_customers = Customer.find(:all, :conditions => { :birthday => (Date.today)..(Date.today + 2.weeks) }) 

이 발생합니다 그러한 검색에 최적화 된 데이터베이스로 작업 할 수 있습니다.

+0

나는 색인 페이지에서 고객을 생년월일까지 검색 할 수 있기를 원합니다. 즉, 생년월일을 가진 모든 고객을 찾기 위해 뷰에서 date_select를 사용하여 bla bla 등을 검색 하시겠습니까? –

+0

그러면 'Date.today'를 date_select의 주어진 params 값으로 바꾸기 만하면됩니다. 그러나 특정 날짜를 검색 할 때 추첨을하고 싶지 않으면 두 번째 예제에서 사용한 범위 옵션을 제안합니다. – Rock

+0

내 date_select에서 가져온 날짜 형식은 { "(1i)"= "2010", "(2i)"=> "8", "(3i)"=> "16"}와 같은 해시입니다. 어떻게 그것을 날짜 형식으로 변환 할 수 있습니다 : 나는 그것을 조건에서 사용할 수 있습니까? 감사합니다 –

1

date은 다음과 같은 형식의 문자열입니다. 23-10-1975.

Customer.all(:conditions => { :date_of_birth => Date.strptime(date, '%d-%m-%Y') }) 
+0

죄송합니다, 제 질문은 매우 모호했습니다, 나는 질문을 업데이 트했습니다. 메신저는 레일에 익숙하지 않지만 날짜는 문자열 형식이 아닙니다. 그것의 날짜. –

+0

@Mo 나는 데이터베이스 필드가 날짜가 아닌 문자열임을 이해합니다. 내가 말하고있는 문자열은 사용자가'date_select'를 통해 자신의 견해에서 얻을 형식입니다. – bjg

+0

당신이 의미하는 바를 정말로 모르겠어요. 내 잘못이야. 답변 해주셔서 감사합니다. –

관련 문제