1

3 가지 모델 (실제 양식 1, 다른 항목 1 및 업로드 된 자료실 1)이있는 양식을 만들려고합니다. jQuery File Upload gem을 사용하여 내 PDF를 서버에 업로드하고 싶지만이 양식을 처리하는 ActiveAdmin gem도 사용하고 있습니다.여러 파일 업로드 ActiveAdmin 통합

다중 업로드 파일 입력을 만들고이를 ActiveAdmin 내 파일 모델을 통해 어떻게 추가 할 수 있습니까?

나는이 있어야합니다 파일이

  • 가 검증하는 PDF
  • 형태와 모든 것을 함께 제출 자신의 크기 인 경우 양식에 오류가있는 경우

    • 유효성이 (업로드하지만 보관하지 않습니다 여러 업로드와 형태에 대한 입력 내부의 파일)
  • 답변

    2

    이 시도 할 수 있습니다 :

    ,210

    도 참조 : 레일의 유효성 검사기의 accept nested attributes for has_many relationship

    사용이 경과하지 않은 경우 저장되지 양식을 방해합니다. 종이 클립 확실

    # attachment.rb 
    validates :check_size 
    validates :check_if_pdf 
    
    def check_size 
        errors.add :path, "Size is NOT ok" if self.size < XXX 
    end 
    
    def check_if_pdf 
        errors.add :path, "File is NOT pdf" unless self.path.to_s.split('.').last == 'pdf' 
    end 
    

    되지 않음 ... Carrierwave도 굉장하고 당신이 그 보석에 열려있는 경우이 시도 할 수 있습니다 :

    # attachment.rb 
    mount_uploader :path, MyUploader 
    
    # app/uploaders/my_uploader.rb 
    class MyUploader < CarrierWave::Uploader::Base 
        storage :file # For local storage 
        #storage :fog # If using S3 
    
        def store_dir 
        "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
        end 
    
        def filename 
        @name ||= "#{File.basename(original_filename, '.*')}" if original_filename.present? 
        end 
    end 
    

    Carrierwave 당신이 유효성을 검사 할 수있는 extension_white_list 방법이있다 그것의 PDF 문서

    # uploaders/my_uploader.rb 
    def extension_white_list 
        %w(pdf jpg jpeg gif png csv) 
    end 
    
    +0

    그 후, 어떻게하면 Paperclip과 activeAdmin gem을 사용하여 여러 파일을 업로드 할 수 있습니까? –

    +0

    좋아, Carrierwave로 변경하려는 경우에 대비하여 몇 줄을 추가했습니다. – James

    +0

    다시 한번 감사드립니다. Skype에 나를 추가 할 수 있습니까? 나는 Rails 세계에 처음으로 익숙하다. –