tripped me up before. It wouldn't be a big deal, but it can lead to a
silent failure. I'd like to suggest that it either be made consistent or be
made to fail loudly.
The issue is that to do something before validating, but only when
creating, you use `before_validation on: :create`, but to do something
before saving, but only when creating, you use `before_create`.
I have tried to use `before_save on: :create`, and it does not produce an
error, but it does something unexpected: it saves before create **and**
before update. This isn't really something an application's tests would
catch, I don't think.
I propose one of the following changes:
1. `before_save on: :create` and `before_save on: :update` could be
supported (and the same for `after_save` and `after_commit`)
2. Using `before_save on: :create` and the like could raise an exception
saying either "this isn't supported" or "this isn't supported but will be
3. The `before_validation on: :create` syntax could be dropped in favor of
`before_save_validation` and `before_create_validation`, so that all a
user's hook declarations are either successful or get `NoMethodError`
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group.
To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-core/-/CU3L9lEhvTkJ.
To post to this group, send email to firstname.lastname@example.org.
To unsubscribe from this group, send email to email@example.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en.