From 740f7787e0b2db6bc476e85774f7a7044e1f983a Mon Sep 17 00:00:00 2001 From: Takehiro Adachi Date: Sat, 3 Aug 2013 23:05:11 +0900 Subject: [PATCH] Fix active_record_validations.md document, `:save` for `on:` validation helper was never available 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 :create if # new_record? is +true+, and to :update if it is not. # # Validations with no :on option will run no matter the context. Validations with # some :on 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. --- guides/source/active_record_validations.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/guides/source/active_record_validations.md b/guides/source/active_record_validations.md index d95b587e78..8154d4e1cc 100644 --- a/guides/source/active_record_validations.md +++ b/guides/source/active_record_validations.md @@ -243,7 +243,7 @@ line of code you can add the same kind of validation to several attributes. All of them accept the `:on` and `:message` options, which define when the validation should be run and what message should be added to the `errors` collection if it fails, respectively. The `:on` option takes one of the values -`:save` (the default), `:create` or `:update`. There is a default error +`:create` or `:update`. There is a default error message for each one of the validation helpers. These messages are used when the `:message` option isn't specified. Let's take a look at each one of the available helpers. @@ -765,10 +765,9 @@ class Person < ActiveRecord::Base validates :age, numericality: true, on: :update # the default (validates on both create and update) - validates :name, presence: true, on: :save + validates :name, presence: true end ``` -The last line is in review state and as of now, it is not running in any version of Rails 3.2.x as discussed in this [issue](https://github.com/rails/rails/issues/10248) Strict Validations ------------------