2015-01-17 2 views
0

ActiveAdmin에 새 리소스를 만들기위한 양식이 있습니다. 내 필드 중 두 가지는 정수 (peak_count 및 off_peak_count)입니다.ActiveAdmin이 클라이언트 측 폼에서 입력 유효성 검사를 수행하도록하려면 어떻게해야합니까?

입력란에 문자열을 입력하면 입력 한 입력란의 유형이 잘못되어 데이터베이스 오류 스택 추적을 받게됩니다. db에 데이터를 입력하기 전에 클라이언트 측에서 필드의 입력 유형을 시행하도록 ActiveAdmin을 얻으려면 어떻게해야합니까?

form do |f| 
    f.inputs do 
     if f.object.new_record? 
     f.input :name 
     else 
     f.input :id, :input_html => {:disabled => true} 
     f.input :name, :input_html => {:disabled => true} 
     end 
     f.input :peak_count 
     f.input :off_peak_count 
    end 
    f.actions 
    end 

답변

0

활성 관리자는 이미 유형 번호를 입력해야하지만 브라우저가 다른 문자를 입력하지 못하도록 차단하지 않아야합니다.

다음은 내가 사용하는 것입니다.

커피 스크립트 : 당신은 단지 JS를 사용하는 경우

$ -> 
    $("input[type='number']").keydown (c) -> 
    return false if c.shiftKey 
    return false unless c.which in 
     [8,9,13,37,38,39,40,45,46,48, 
     49,50,51,52,53,54,55,56,57,96,97,98, 
     99,100,101,102,103,104,105,110, 
     173,189,190] 

당신이 그것을 here을 변환 할 수 있습니다 나는 active_admin.js에 요구되는 파일에 넣어 전 세계적으로 활성화 된 관리자에 포함.

그래도 서버 측 유효성 검사를 추가합니다.

+0

고마워요! 나는 ActiveAdmin이 그것을 시행하는 멋진 방법이 있었으면 좋겠다. 그러나 나는 너 자신을 할 필요가 있다고 생각한다. – djsosofresh

0

클라이언트 측 검증을 위해, 당신이 당신의 입력 필드에 필터로 :as => :number를 추가 할 수 있어야한다 :

여기 내 양식이다. ActiveAdmin은 URL, 텍스트 및 전자 메일을 지원하므로 숫자 검증에 대한 지원을받을 수 있다고 추측 할 수 있습니다.

이 기능이 작동하는지 알려주세요.

+0

실제로 작동하지 못했습니다. – djsosofresh