PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Вземете IPAddr екземпляр от неговото json представяне

Не съм сигурен дали това помага, но ако прочетете коментара ми под отговора на d_ethier, можете да видите, че IPAddr всъщност не знае нищо за JSON.

Въпреки това можете маймунски да го коригирате, за да разберете JSON така:

require 'active_model'
require 'active_support'
require 'active_support/core_ext'
require 'ipaddr'

class IPAddr
  include ActiveModel::Serializers::JSON

  attr_accessor :addr, :mask_addr, :family

  def attributes=(hash)
    hash.each do |key, value|
      send("#{key}=", value)
    end
  end

  def attributes
    instance_values
  end
end   

p i = IPAddr.new('127.0.0.1')
p j = i.to_json
p IPAddr.new.from_json(j)

Изход:

#<IPAddr: IPv4:127.0.0.1/255.255.255.255>
"{\"family\":2,\"addr\":2130706433,\"mask_addr\":4294967295}"
#<IPAddr: IPv4:127.0.0.1/255.255.255.255>

Източник:
http://apidock.com/rails/ActiveModel/Serializers /JSON/from_json



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL, където обединеният набор трябва да съдържа всички стойности, но може да съдържа повече

  2. PGError:ГРЕШКА:агрегатите не са разрешени в клаузата WHERE на AR заявка на обект и неговите has_many обекти

  3. Не мога да инсталирам PostgreSQL:Възникна грешка при изпълнение на инсталатора на Microsoft VC++ на Windows XP

  4. Условието за секвениране на обединена таблица не работи с ограничение

  5. Връщане на динамична таблица с неизвестни колони от функцията PL/pgSQL