0
votes

In controller, I am calling .commit() on a record, and posting to API endpoint fine.

When I render status 422 (Rails unprocessable entity for validation error), neither error nor invalid callbacks hit. when i change server side error code to 400, the became error callback hits.

does something need to be different for became invalid?

// model (coffeescript)
App.Post = DS.Model.extend
  message: DS.attr('string')
  becameError: () ->
    console.log 'error fired' // fires when 400, doesnt fire when 422
  becameInvalid: (error) ->
    console.log 'invalid fired' // doesnt fire when 422

// controller
model.on('becameError', () ->
  console.log 'error fired'
).on('becameInvalid', (error) ->
  console.log 'invalid fired'
1
Are you using the active model adapter? - Kingpin2k

1 Answers

1
votes

You need to be using the active model adapter, return 422 and an object with an errors property that's an object of key/values why it failed

http://emberjs.jsbin.com/OxIDiVU/34/edit