module HashSerializer::Helpers
Helper methods for generating methods from hash keys and validating keys
Public Instance Methods
validate_hash_serializer_keys(hash_name, valid_keys)
click to toggle source
Validates a Postgres JSON hash on an ActiveRecord model does not include extra keys. It prevents user created data on JSON column types.
Example:
>> validate_hash_serializer :billing_hash, %w(name address city state)
@param hash_name [Symbol, String] @param valid_keys [Array]
@return [Array] a sorted Array of the invalid keys
# File lib/hash_serializer/helpers.rb, line 19 def validate_hash_serializer_keys(hash_name, valid_keys) return if send(hash_name).nil? # || !send("#{hash_name}_changed?") invalid_keys = send(hash_name).keys.map(&:to_s) - valid_keys.map(&:to_s) return if invalid_keys.empty? invalid_keys.sort end