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?
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.
Try using the bang version save!
(with an exclamation mark at the end) and inspecting the resulting error.
If @user.save
(for example) returns false
, then just run this to get all the errors:
@user.errors.full_messages
Yea, I fixed this issue by making sure I return true in all my before_* callbacks then it starts working :)
The problem I had was that I had forgotten to add the validation to the model.
class ContactGroup < ActiveRecord::Base
validates_presence_of :name
end
'Development Tip' 카테고리의 다른 글
Is there a way to view deployed files in Azure? (0) | 2020.09.25 |
---|---|
Angular 2 - 'Could not find HammerJS' (0) | 2020.09.25 |
I have an error: setOnItemClickListener cannot be used with a spinner, what is wrong? (0) | 2020.09.25 |
Select data from date range between two dates (0) | 2020.09.25 |
python pandas dataframe to dictionary (0) | 2020.09.25 |