According to the guide, ":save" value for the "on:" validation helper
was available like below
validates :name, presence: true, on: :save
but this was never available according to the implementation of the
valid? method, which is below
# Runs all the validations within the specified context. Returns
+true+ if
# no errors are found, +false+ otherwise.
#
# If the argument is +false+ (default is +nil+), the context is set
to <tt>:create</tt> if
# <tt>new_record?</tt> is +true+, and to <tt>:update</tt> if it is
not.
#
# Validations with no <tt>:on</tt> option will run no matter the
context. Validations with
# some <tt>:on</tt> option will only run in the specified context.
def valid?(context = nil)
context ||= (new_record? ? :create : :update)
output = super(context)
errors.empty? && output
end
So the documentation was always wrong since the PR proposed by
@neerajdotname ( #10287 ) was rejected.
Of course validates_presence_of is still working but it is not explained in the guide, I think consequently should use 'presence: true' in this documentation.
The other way it was not marking the text as italic, it was showing the
underlines as normal text.
Also fixes some code examples indentation and # => marks in Active Model
and Active Record guides.
[ci skip]
Two big features that are only barely related in the same guide. Seems
bad.
I did not check references to these guides yet, so some links may need
to be updated.