diff options
Diffstat (limited to 'activemodel/lib/active_model/validations/acceptance.rb')
| -rw-r--r-- | activemodel/lib/active_model/validations/acceptance.rb | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/activemodel/lib/active_model/validations/acceptance.rb b/activemodel/lib/active_model/validations/acceptance.rb index ac5e79859b..ee160fb483 100644 --- a/activemodel/lib/active_model/validations/acceptance.rb +++ b/activemodel/lib/active_model/validations/acceptance.rb @@ -3,12 +3,12 @@ module ActiveModel    module Validations      class AcceptanceValidator < EachValidator # :nodoc:        def initialize(options) -        super({ allow_nil: true, accept: "1" }.merge!(options)) +        super({ allow_nil: true, accept: ["1", true] }.merge!(options))          setup!(options[:class])        end        def validate_each(record, attribute, value) -        unless value == options[:accept] +        unless acceptable_option?(value)            record.errors.add(attribute, :accepted, options.except(:accept, :allow_nil))          end        end @@ -20,6 +20,10 @@ module ActiveModel          klass.send(:attr_reader, *attr_readers)          klass.send(:attr_writer, *attr_writers)        end + +      def acceptable_option?(value) +        Array(options[:accept]).include?(value) +      end      end      module HelperMethods | 
