2016-05-09 6 views
1

gerade von neo4j.rb v4 Upgrade v7 neo4j.rb und fand, dassneo4j.rb v7 Kompatibilität mit attr_encrypted

require 'attr_encrypted' # v3.0.1 

class PmConfiguration 

    include Neo4j::ActiveNode 

    property :do_api_token 
    property :ql_pub_key 
    property :ql_email  
    property :cc_email 
    property :default_dev_domain 
    property :login 
    property :secret_sudo_pwd 

    attr_encrypted :sudo_pwd, key: 'ql', prefix: 'secret_', encode: true 

    class << self ... 

produziert:

NoMethodError: undefined method `attr_encrypted' for #<Class:0x005566a6b5bf00> 
Did you mean? attr_reader 

, wenn die Klasse ausgeführt wird. Arbeitete gut mit neo4j.rb v4.

Gibt es eine Arbeit um oder eine neo4j Art, die gleiche/ähnliche Sache zu tun, die ich noch nicht gefunden habe?

Grüße

+0

Ich habe gerade eine neue Rails-Anwendung versucht, und ich bekomme diesen Fehler mit 4.0, 4.1, 5.0, 6.0 und 7.0. .. Wenn es für dich funktioniert, welche Versionen der 'neo4j' und' neo4j-core' Edelsteine ​​verwendest du? –

+0

Nach dem Lesen einer Menge Code ist das Problem der Unterschied zwischen attr_encrypted 1.3 und 3.0. Mit Version 3.0 muss eine zusätzliche Spalte hinzugefügt werden (wenn Persistenz erforderlich ist). Im obigen Beispiel habe ich hinzugefügt: Eigenschaft: secret_sudo_pwd_iv Nicht sicher über Schienen, weil meine Einrichtung – Ross

Antwort

1

Followup: Nach viel Code zu lesen, ist die Frage der Unterschied zwischen attr_encrypted 1.3 & 3.0.

Mit v 3.0 ist es notwendig, eine zusätzliche Spalte hinzuzufügen (wenn Persistenz erforderlich ist).

In dem obigen Beispiel, habe ich:

property :secret_sudo_pwd_iv 

Nicht sicher Schienen, weil mein Set up mehr PORO war, also musste ich auch innerhalb der Klasse zu extend AttrEncrypted.

Zufällig ist dies alles gut dokumentiert in der README. Es tut mir leid, dass ich beim Posten etwas verfrüht war.

Hoffe, das hilft.

Das überarbeitete Modell ist unten (die mit attr_encrypted v3.0 funktioniert)

class PmConfiguration 

    extend AttrEncrypted 

    include Neo4j::ActiveNode 

    property :do_api_token 
    property :ql_pub_key 
    property :ql_email 
    property :cc_email 
    property :default_dev_domain 
    property :login 
    property :secret_sudo_pwd 
    property :secret_sudo_pwd_iv 
+0

Froh, dass Sie in der Lage waren, es herauszufinden. Danke, dass du die Lösung gepostet hast! –

0

Fügen Sie den attr_encypted gem

oder

gem install attr_encrypted 

oder in Ihrem gemfile

gem "attr_encrypted", "~> 3.0.0" 
+0

zur Klarstellung, der Edelstein war Teil des Bündels. funktionierte gut für neo4j.rb v4, aber nicht für neo4j.rb v7 – Ross