2010-07-12 3 views
2

레일 헬퍼 datetime_select을 사용하고 있습니다. 현재 day, year, hourminute에 대한 드롭 다운을 유효성 검사가 포함 된 텍스트 상자로 변경해야한다는 요구 사항이 있습니다. 이 필드에 텍스트 상자를 지정할 수있는 방법이 있습니까? 아니면 내가 필요한 것을 할 수있는 다른 도우미? 여기 Rails datetime_select 도우미의 입력 유형을 수정하려면 어떻게해야합니까?

내 사용이다 :

datetime_select(:campaign, :start_date, :order => [:day, :month, :year, :hour, :minute]) 

답변

4

처럼, 자신의 간단한 도우미 롤링에 대한
def datetime_text_fields(object_name, method) 
    html = text_field_tag("#{object_name}[#{method}(3i)]", Date.today.day.to_s, :length => 2) 
    html << select_month(Date.today, :field_name => "#{object_name}[#{method}(2i)]") 
    html << text_field_tag("#{object_name}[#{method}(1i)]", Date.today.year.to_s, :length => 4) 
    html << " " 
    html << text_field_tag("#{object_name}[#{method}(4i)]", Time.now.hour.to_s, :length => 2) 
    html << ":" 
    html << text_field_tag("#{object_name}[#{method}(5i)]", Time.now.min.to_s, :length => 2) 
end 

등 많은 형식 물건/분리기를 추가 부담하지만, 기본적으로 필드를 해결하기 위해 반환하는 방법 DateTime으로 식별 될 레일의 이름. 레일 date(1i) 같은 이름 필드, 1I = 년, 2I = 달 등

솔직히 나는 그것을 또는 아무것도를 테스트하지 않았다 것으로 예상하지만, 콘솔의 출력은 꽤 설득력있는 모습) 자신의 롤하지 왜

0

, 날짜 선택 도구 도우미와 동일한 방식으로 입력 필드의 이름을 지정하면 사용자 정의 프런트 엔드를 롤링하는 동안 모든 백엔드 이점을 얻을 수 있습니다. 또는 :order을 사용하여 날짜 선택 도구에서 월 선택을하고 다른 입력에 자바 스크립트 마법을 사용합니다.

jquery datepicker를 사용하고 숨겨진 필드를 레일즈 datepicker와 동일한 명명 규칙으로 채울 수 있습니다.

관련 문제