Search code examples
ruby-on-railsactiverecord

In rails, how can I find out what caused a .save() to fail, other than validation errors?


I have an ActiveRecord model which is returning true from valid? (and .errors is empty), but is returning false from save(). If the model instance is valid, how can I find out what's causing the save to fail?


Solution

  • Check all your callbacks.

    I had a problem like this where I had and "after_validate" method that was failing after I had made a bunch of changes to the model. The model was valid but the "after_validate" was returning false, so if I used model.valid it said true, but then if I saved it gave me validation errors (passed through from the after_validate callback). It was weird.

    Look at the application trace and you should be able to see what line of code is raising the exception.