Assignment on associations will bypass validation
Important gotcha that assignment to has_many associations will cause an immediate save even if callback validation fails.
u = User.last
u.accounts = []
u.save # returns false because this user cannot have blank accounts
u.reload.accounts # returns empty array
The gotcha here is that save is a no-op really. As soon as u.accounts=[]
is called, the data is saved immediately, bypassing validation.
Written on March 22, 2017 by jordanneville