2

ファイル(ファイル名、サイズ)をアップロードすることで発生する可能性のあるエラーを表示しようとしています。RubyonRails用に適応したバージョンのJqueryFielUploadを使用しています

json応答の「error」キーにエラーメッセージ(検証)を関連付ける必要があります。

私はそれを機能させるためにjavascriptを変更する必要があると思います。

json:

render json: {error: @upload.errors.full_messages}, status: :unprocessable_entity

検証:

 validates_uniqueness_of :upload_file_name, :message => "File with this name is already in the database"
     
 validates :upload_file_size,  :inclusion  => {:in =>10.megabytes..20.megabytes}, :message =>"Too big or too small"

ファイルのアップロードに使用するJavascript:

<script type="text/javascript" charset="utf-8">
      $(function () {
          // Initialize the jQuery File Upload widget:
          $('#fileupload').fileupload();
          // 
          // Load existing files:
          $.getJSON($('#fileupload').prop('action'), function (files) {
            var fu = $('#fileupload').data('fileupload'), 
              template;
            fu._adjustMaxNumberOfFiles(-files.length);
            console.log(files);
            template = fu._renderDownload(files)
              .appendTo($('#fileupload .files'));
            // Force reflow:
            fu._reflow = fu._transition && template.length &&
              template[0].offsetWidth;
            template.addClass('in');
            $('#loading').remove();
          });
    
      });
    </script>

私はそれらのことも試しました: json: => [{:error=> @upload.errors.full_messages }] } これを使用すると検証メッセージのみが表示されますが、ステータスが必要です:同様に

4

1 に答える 1

0

解決策は次のとおりです。

json:

format.json{ render json: {error: @upload.errors.full_messages}, :status =>422}

javascript(メインコードのカットオフ)

$('#fileupload').fileupload({       


        error: function(xhr){
          var errors = $.parseJSON(xhr.responseText).error
          alert(errors)         
        }
              });
于 2012-10-29T20:36:35.490 に答える