fix: actual_value_for(validate) returns false instead of true when there is no validate option #1378
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #1357
It seems to me that the problem here is that when there is no validate option on the relationship the value being returned by
actual_value_for(name)
is nil instead of true - the default value.In case you want to check the default value for this macro: documantation and active_record/associations/has_many_association.rb#L56.
To avoid this I added a check to validate the value and if it is null the default value will be returned instead, otherwise the code will follow its normal flow. I added some tests just to be sure about the behaviour. What do you think?