JSON response , error message

I am trying to show the errors that can occur by uploading a file (file
name, size).
I need have your error messages associated to the ‘error’ key in my json

format.html { render action: “new” }
format.json { render json: @upload.errors, status:
:unprocessable_entity }

my validations:

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”

  def to_jq_upload
      "name" => read_attribute(:upload_file_name),
      "size" => read_attribute(:upload_file_size),
      "url" => upload.url(:original),
      "delete_url" => upload_path(self),
      "delete_type" => "DELETE"


I have tried:
format.json { render json: => [{:error=> @upload.errors.full_messages }]
using this shows the validation message but I need the status: to be
as well

render json: {error: @upload.errors.full_messages}, status:
shows no error messages at all

render json: {error: @upload.errors.full_messages}, status:
I get an error-text : Internal Server Error and not what stands in my
validation messages

Thanks in advanced

in your controller:

render :json => { :errors => @example.errors.full_messages }, :status =>

in your js file:

$('.form_id_or_class').live('submit', function() {
    url: $(this).attr("action"),
      type: "POST",
      data: $(this).serialize(),
      success: function(data) {
       // do some action
    ,error: function(xhr){
      var errors = $.parseJSON(xhr.responseText).errors
  return false;

On Sun, Oct 28, 2012 at 1:37 AM, Akvarel [email protected]

=>10.megabytes…20.megabytes}, :message =>“Too big or too small”

shows no error messages at all
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
To view this discussion on the web visit
For more options, visit https://groups.google.com/groups/opt_out.

Regards by

On Sun, Oct 28, 2012 at 12:26 AM, Saravanan P
[email protected] wrote:

render :json => { :errors => @example.errors.full_messages }, :status => 422

Why are you sending a 422? If you really want to stick in the 400
range it would be more suitable to send a 409 conflict since it
literally is a conflict but some just prefer to stick to a generic

    ,error: function(xhr){
      var errors = $.parseJSON(xhr.responseText).errors
  return false;

The only js script i have there is the following and it is in the
index.html.erb. I am using this example for File uploader in Ruby on
Should I just add your code to mine or mine code has to be modified?

On Sunday, 28 October 2012 02:07:27 UTC-4, Jordon B. wrote:

422 is the recommended behavior from respond_with and friends:


409 seems odd, given that the error could be “file too large” which
really “a conflict with the current state of the resource” as described
the RFC.

Also note that returning a 422 causes ActiveResource to behave in an
expected manner (failing a save rather than raising an exception), which
may-or-may-not be relevant for this use case.

–Matt J.