25 lines
924 B
Ruby
25 lines
924 B
Ruby
|
# Rails 5.0 has changed to only store and read ActiveSupport::HashWithIndifferentAccess from stores
|
||
|
# we extended lib/core_ext/active_record/store/indifferent_coder.rb to read also ActionController::Parameters
|
||
|
# and convert them to ActiveSupport::HashWithIndifferentAccess for migration in db/migrate/20170910000001_fixed_store_upgrade_45.rb.
|
||
|
require 'active_record/store'
|
||
|
module ActiveRecord
|
||
|
module Store
|
||
|
class IndifferentCoder
|
||
|
def self.as_indifferent_hash(obj)
|
||
|
case obj
|
||
|
# re-enable using ActionController::Parameters in stores
|
||
|
when ActionController::Parameters
|
||
|
obj.permit!.to_h
|
||
|
# /re-enable using ActionController::Parameters in stores
|
||
|
when ActiveSupport::HashWithIndifferentAccess
|
||
|
obj
|
||
|
when Hash
|
||
|
obj.with_indifferent_access
|
||
|
else
|
||
|
ActiveSupport::HashWithIndifferentAccess.new
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|