0

検証メッセージをキャッチしようとしました$.parseJSON(xhr.responseText).errorsが、アラートメッセージは「未定義」であり、その理由がわかりません。

私の検証は次のとおりです。

validates :upload_file_name,  :presence   => true,
                                :format     =>{:with => %r{\.(jpg)$}i,:message =>"It should be a pdf File"}

  validates_uniqueness_of :upload_file_name, :message => "blabla"

  validates :upload_file_size,  :inclusion  => {:in =>1.megabytes..20.megabytes,:message=>"bla"}

json:

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

そしてそのためのjavascript:

 $('#fileupload').fileupload({       


        error: function(xhr){
          var errors = $.parseJSON(xhr.responseText).errors
          alert(errors)         
        }
              });
4

1 に答える 1

1

コントローラーにタイプミスがあります。次のように変更してください。

format.json{ render json: {errors: @upload.errors.full_messages}, :status =>422}
于 2012-10-29T20:32:58.957 に答える