diff options
| author | Zog | 2018-05-11 10:47:42 +0200 |
|---|---|---|
| committer | Zog | 2018-05-11 10:47:42 +0200 |
| commit | 193b8419e3a4445d9c14536ca8a461685b6be415 (patch) | |
| tree | d16c8347e9a67e119b9f5abf4c701c2e7ae70139 /app/models | |
| parent | 7b7a7b44a9c8d016e1c0cadc7b8f887de9dcac0a (diff) | |
| download | chouette-core-6852-make-capacity-optional.tar.bz2 | |
Refs #6852; Update Customfields6852-make-capacity-optional
Better validations for List with an hash as `list_values`
Diffstat (limited to 'app/models')
| -rw-r--r-- | app/models/custom_field.rb | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/app/models/custom_field.rb b/app/models/custom_field.rb index deb0326f8..7fb45ffa0 100644 --- a/app/models/custom_field.rb +++ b/app/models/custom_field.rb @@ -158,12 +158,23 @@ class CustomField < ApplicationModel end class List < Integer + def collection_is_a_hash? + options["list_values"].is_a?(Hash) + end + def validate - super return unless value.present? - unless value >= 0 && value < options["list_values"].size - @owner.errors.add errors_key, "'#{@raw_value}' is not a valid value" - @valid = false + if collection_is_a_hash? + unless options["list_values"].include(value.to_s) + @owner.errors.add errors_key, "'#{@raw_value}' is not a valid value" + @valid = false + end + else + super + unless value >= 0 && value < options["list_values"].size + @owner.errors.add errors_key, "'#{@raw_value}' is not a valid value" + @valid = false + end end end |
