2016-07-13 4 views
0

저는 Paperclip을 사용하여 파일 업로드를 처리하고 있지만 매우 큰 파일을 다루고 있기 때문에 일련의 숨겨진 필드를 통해 파일 정보를 제출하기 전에 이미지를 S3에 직접 업로드하고 있습니다.다른 입력으로 매핑 확인 오류가 발생했습니다

파일 입력이 있습니다 (original_file_url).하지만 S3 업로드에만 사용됩니다. 파일 업로드가 완료되면 일련의 숨겨진 입력란에 업로드에서 필요한 데이터가 채워집니다.

"photo.image_content_type"=>["is invalid"], 
"photo.image"=>["is invalid", "can't be blank", "Width must be at least 2460px", "Height must be at least 1640px"]} 

내가 사용하고 단순한 형태 :

<%= photo_form.input :original_image_url, as: :file, label:false %> 

다음과 같은 템플릿이 클립에 의해 생성 된 유효성 검사 오류가, 내 자신의 유효성 검사 오류와 함께, 내 파일 입력에 매핑되지 않는 것을 의미한다 내 이니셜 라이저에 정의 됨 :

config.wrappers :app, class: 'ControlGroup', error_class: 'is-error' do |b| 
    b.use :html5 
    b.use :placeholder 
    b.optional :maxlength 
    b.optional :pattern 
    b.optional :min_max 
    b.optional :readonly 
    b.use :label_input 
    b.use :error, wrap_with: { tag: :div, class: 'ControlGroup-inlineError' } 
    b.use :hint, wrap_with: { tag: :span, class: 'ControlGroup-hint' } 
    end 

인라인 오류로 표시되도록 이러한 오류를 해당 입력에 매핑하는 방법이 있습니까? 위의 템플릿이 이미 잘 작동하고 오류 필드가 포함되어 있다고 가정하면 표시 할 오류 메시지를 전달하는 방법이 필요합니다.

+0

내 대답에 문서를 추가했습니다. –

답변

0

예, 폼 빌더는 방법 error을 가지고, 당신은 당신이에 대한 오류하고자하는 속성을 지정할 수 있습니다

photo_form.error :image_content_type 
photo_form.error :image 

문서 here합니다.

+0

감사합니다. 따라서 래퍼, 입력, 오류 및 힌트를 수동으로 빌드하는 것이 좋습니다. – Undistraction

+0

템플릿의 수동 또는 수동 [in config] (https://github.com/plataformatec/simple_form/wiki/Custom-Wrappers)에서 무엇을 의미하는지 확신 할 수 없습니까? –

+0

죄송합니다. 그것은 불분명했다. 나는 그 입력에 대해서만 별도의 템플릿을 작성해야합니까? 오류 메시지를'<% = photo_form.input ... %>'호출로 전달할 방법이 없습니까? (나는 질문을 더 자세하게 업데이트했다). – Undistraction