1. 16 2月, 2017 1 次提交
  2. 27 10月, 2016 1 次提交
  3. 24 2月, 2016 1 次提交
    • E
      Revert changes to validations from PR #18612 · 2c02bc0a
      eileencodes 提交于
      In order to fix issue #17621 we added a check to validations that
      determined if a record should be validated. Based on the existing tests
      and behavior we wanted we determined the best way to do that was by
      checking if `!record.peristed? || record.changed? || record.marked_for_destruction?`
      
      This change didn't make it into a release until now. When #23790 was
      opened we realized that `valid?` and `invalid?` were broken and did not
      work on persisted records because of the `!record.persisted?`.
      
      While there is still a bug that #17621 brought up, this change was too
      drastic and should not be a RC blocker. I will work on fixing this so
      that we don't break `valid?` but also aren't validating parent records
      through child records if that parent record is validate false. This
      change removes the code changes to validate and the corresponding tests.
      It adds tests for two of the bugs found since Rails 5 beta2 release.
      
      Fixes #17621
      2c02bc0a
  4. 20 2月, 2016 1 次提交
    • E
      Always validate record if validating a virtual attribute · 6f15b276
      eileencodes 提交于
      Fixes #23645
      
      When you're using an `attr_accessor` for a record instead of an
      attribute in the database there's no way for the record to know if it
      has `changed?` unless you tell it `attribute_will_change!("attribute")`.
      
      The change made in 27aa4dda updated validations to check if a record was
      `changed?` or `marked_for_destruction?` or not `persisted?`. It did not
      take into account virtual attributes that do not affect the model's
      dirty status.
      
      The only way to fix this is to always validate the record if the
      attribute does not belong to the set of attributes the record expects
      (in `record.attributes`) because virtual attributes will not be in that
      hash.
      
      I think we should consider deprecating this particular behavior in the
      future and requiring that the user mark the record dirty by noting that
      the virtual attribute will change. Unfortunately this isn't easy because
      we have no way of knowing that you did the "right thing" in your
      application by marking it dirty and will get the deprecation warning
      even if you are doing the correct thing.
      
      For now this restores expected behavior when using a virtual attribute
      by always validating the record, as well as adds tests for this case.
      
      I was going to add the `!record.attributes.include?(attribute)` to the
      `should_validate?` method but `uniqueness` cannot validate a virtual
      attribute with nothing to hold on to the attribute. Because of this
      `should_validate?` was about to become a very messy method so I decided
      to split them up so we can handle it specifically for each case.
      6f15b276
  5. 14 10月, 2015 1 次提交
    • Y
      applies new doc guidelines to Active Record. · 428d47ad
      Yves Senn 提交于
      The focus of this change is to make the API more accessible.
      References to method and classes should be linked to make it easy to
      navigate around.
      
      This patch makes exzessiv use of `rdoc-ref:` to provide more readable
      docs. This makes it possible to document `ActiveRecord::Base#save` even
      though the method is within a separate module
      `ActiveRecord::Persistence`. The goal here is to bring the API closer to
      the actual code that you would write.
      
      This commit only deals with Active Record. The other gems will be
      updated accordingly but in different commits. The pass through Active
      Record is not completely finished yet. A follow up commit will change
      the spots I haven't yet had the time to update.
      
      /cc @fxn
      428d47ad
  6. 22 6月, 2015 1 次提交
  7. 12 4月, 2015 1 次提交
  8. 02 2月, 2015 1 次提交
    • E
      Fix validations on child record when record parent has validate: false · 27aa4dda
      eileencodes 提交于
      Fixes #17621. This 5 year old (or older) issue causes validations to fire
      when a parent record has `validate: false` option and a child record is
      saved. It's not the responsibility of the model to validate an
      associated object unless the object was created or modified by the
      parent.
      
      Clean up tests related to validations
      
      `assert_nothing_raised` is not benefiting us in these tests
      Corrected spelling of "respects"
      It's better to use `assert_not_operator` over `assert !r.valid`
      27aa4dda
  9. 29 11月, 2014 1 次提交
  10. 06 8月, 2014 1 次提交
    • J
      Add a note on custom validation contexts. · 2bb0abbe
      Justin Weiss 提交于
      The documentation on `:on` for validations was inconsistent, and most
      only referenced the `:create` and `:update` contexts. I fixed those to
      be consistent with the documentation on `AM::Validations.validates`,
      which seemed to have the best docs.
      
      [ci skip]
      2bb0abbe
  11. 25 5月, 2014 1 次提交
  12. 01 1月, 2014 1 次提交
  13. 17 10月, 2012 1 次提交
  14. 23 9月, 2012 1 次提交
  15. 21 7月, 2012 1 次提交
  16. 10 7月, 2012 1 次提交
  17. 05 7月, 2012 1 次提交
  18. 26 6月, 2012 1 次提交
  19. 16 5月, 2012 2 次提交
  20. 27 11月, 2011 1 次提交
  21. 17 8月, 2011 1 次提交
    • B
      Implemented strict validation concept · 8620bf90
      Bogdan Gusiev 提交于
      In order to deliver debug information to dev team
      instead of display error message to end user
      Implemented strict validation concept
      that suppose to define validation that always raise exception when fails
      8620bf90
  22. 22 2月, 2011 2 次提交
  23. 21 2月, 2011 1 次提交
  24. 19 2月, 2011 1 次提交
  25. 21 6月, 2010 1 次提交
    • J
      Make ActiveModel::Errors#add_on_blank and #add_on_empty accept an options hash... · 26392c4a
      Jeroen van Dijk 提交于
      Make ActiveModel::Errors#add_on_blank and #add_on_empty accept an options hash and make various Validators pass their (filtered) options.
      
      This makes it possible to pass additional options through Validators to message generation. E.g. plugin authors want to add validates_presence_of :foo, :format => "some format".
      
      Also, cleanup the :default vs :message options confusion in ActiveModel validation message generation.
      
      Also, deprecate ActiveModel::Errors#add_on_blank(attributes, custom_message) in favor of ActiveModel::Errors#add_on_blank(attributes, options).
      
      Also, refactoring of ActiveModel and ActiveRecord Validation tests. Test are a lot more DRY now. Better test coverage as well now.
      
      The first four points were reapplied from an older patch of Sven Fuchs which didn't apply cleanly anymore and was not complete yet.
      Signed-off-by: NJosé Valim <jose.valim@gmail.com>
      26392c4a
  26. 16 6月, 2010 1 次提交
  27. 16 5月, 2010 2 次提交
    • J
      Revert "Make ActiveModel::Errors#add_on_blank and #add_on_empty accept an... · d6cbb27e
      José Valim 提交于
      Revert "Make ActiveModel::Errors#add_on_blank and #add_on_empty accept an options hash and make various Validators pass their (filtered) options."
      
      Having a huge array to whitelist options is not the proper way to handle this case. This means that the ActiveModel::Errors object should know about the options given in *all* validators and break the extensibility added by the validators itself. If the intent is to whitelist options before sending them to I18n, each validator should clean its respective options instead of throwing the responsibility to the Errors object.
      
      This reverts commit bc1c8d58.
      d6cbb27e
    • J
      Make ActiveModel::Errors#add_on_blank and #add_on_empty accept an options hash... · bc1c8d58
      Jeroen van Dijk 提交于
      Make ActiveModel::Errors#add_on_blank and #add_on_empty accept an options hash and make various Validators pass their (filtered) options.
      
      This makes it possible to pass additional options through Validators to message
      generation. E.g. plugin authors want to add validates_presence_of :foo, :format
      => "some format".
      
      Also, cleanup the :default vs :message options confusion in ActiveModel
      validation message generation.
      
      Also, deprecate ActiveModel::Errors#add_on_blank(attributes, custom_message) in
      favor of ActiveModel::Errors#add_on_blank(attributes, options).
      
      Original patch by Sven Fuchs, some minor changes and has been changed to be applicable to master again
      
      [#4057 state:committed]
      Signed-off-by: NJeremy Kemper <jeremy@bitsweat.net>
      bc1c8d58
  28. 14 5月, 2010 1 次提交
  29. 08 1月, 2010 1 次提交
  30. 23 12月, 2009 1 次提交
  31. 08 9月, 2009 1 次提交
  32. 09 6月, 2009 1 次提交
  33. 21 3月, 2009 1 次提交
  34. 20 3月, 2009 1 次提交
  35. 02 5月, 2008 1 次提交
  36. 01 4月, 2008 1 次提交