DEV Community

Discussion on: Rails + PostgreSQL JSONB (Part 1)

Collapse
 
pedromschmitt profile image
Pedro Schmitt

Thanks for this great article!

For Rails 6 I had this error:
undefined method 'with_indifferent_access' for "{}":String'

So I needed to change the serializer:

From:

# app/serializers/jsonb_serializers.rb
class JsonbSerializers
  def self.dump(hash)
    hash.to_json
  end

  def self.load(hash)
    (hash || {}).with_indifferent_access
  end
end
Enter fullscreen mode Exit fullscreen mode

To:

# app/serializers/jsonb_serializers.rb

class JsonbSerializers
  def self.dump(hash)
    hash.to_json
  end

  def self.load(hash)
    if hash.nil?
      {}
    elsif hash.is_a?(Hash) && hash.empty?
      hash
    else
      JSON.parse(hash)
    end.with_indifferent_access
  end
end

Enter fullscreen mode Exit fullscreen mode