समस्या जब एन्क्रिप्टेड कॉलम बनाने का प्रयास करते हैं ओएस एक्स 10.9.5
ग्नुप 2.0.22 के साथ सार्वजनिक / प्राइवेट कुंजी बनाई गई:
gpg -a --export & gt; MyKey .key.pub gpg -a - निर्यात-गुप्त-कुंजी myKey & gt; .key.prv
यहां पर हो सकता है कि क्या कोई संकेत? मेरे पास एसएसएन फील्ड माइग्रेशन के साथ एक मॉडल मिला है:
add_column: उपयोगकर्ता,: एसएसएन,: बाइनरी
उपयोगकर्ता मॉडल में
कोड> PGCrypto.keys [.public] = {पथ: '.key.pub'} पीजीक्रिप्टो.कीज़ [। निजी] = {पथ: '.key.prv', बख्तरबंद: सच, पासवर्ड: 'myPassword'} कोड>
रेल c
User.create (उपयोगकर्ता नाम: 'x', ssn: '123-45-6789')
< P> इस त्रुटि प्राप्त करें, स्तंभ एसएसएन है, ऐसा लगता है कि यह सही काम कर रहा है typeError: गलत तर्क प्रकार Arel :: Nodes :: BindParam (अपेक्षित स्ट्रिंग) से ... / विक्रेता / रूबी / 2.2.0 / रत्न / सक्रियरेकॉर्ड -4.0.0 / लिब / सक्रिय_रेकॉर्ड / कनेक्शन_एप्टर्स / पोस्ट-जीआरएक्ल / कोटेशन.आरबी: 1 9: में `एस्केप_स्ट्राइंग 'में ... /vendor/ruby/2.2.0/ गेम्स / सक्रियरेकॉर्ड -4.2.0 / lib / active_record / connection_adapters / postgresql / quoting.rb: 19: में से `quote_string '... ... / विक्रेता /ruby/2.2.0/gems/pgcrypto-0.4.1/lib/pgcrypto/adapter.rb:51:in `pgcrypto_encrypt_string '
निम्नलिखित **** है जहाँ मैं मानता हूँ बग है, लेकिन यह सुनिश्चित नहीं है कि यहां किस तरीके से कॉल किया गया है: Arel :: नोड्स :: बिंदपाराम के बारे में ज्यादा दस्तावेज नहीं मिल सकते हैं। मुझे लगता है कि इसे '123-45-6789' पर सेट करना चाहिए, फिर उसे pgcrypto_encrypt_string कॉल के साथ एन्क्रिप्ट करें। मैंने सत्यापित किया है कि कुंजी सही है।
57 def pgcrypto_inert (arel) 58 यदि टेबल = पीजी क्रिप्टो [arel.ast.relation.name.to_s] 59 arel.ast.columns.each_with_index do | column, i | 60 यदि विकल्प = तालिका [column.name.to_sym] 61 कुंजी = विकल्प [: कुंजी] || PGCrypto.keys [: सार्वजनिक] 62 अगले जब तक कुंजी 63 # एन्क्रिप्टेड एन्क्रिप्टेड कॉलम 64 ***** मान = arel.ast.values.expressions [आई] 65 arel.ast.values.expressions [i] = pgcrypto_encrypt_string (मान, कुंजी) 66 अंत 67 अंत 68 अंत 69 समाप्ति
कोई भी संकेतक काफी सराहना करते हैं। प्रकोप के लिए खुश होने के बाद पुल का अनुरोध करें।
यह अनुमान लगा रहा है कि रेल में एरेल 6.0 के कारण 4.2.0
रेल 4.1.0 में, Arel 5.0
Arel :: नोड्स :: बिंदपाराम & lt; Arel :: नोड :: SqlLiteral & lt; स्ट्रिंग & lt; ऑब्जेक्ट & lt; BasicObject
रेल 4.2.0 एरियल 6.0 में
Arel :: नोड्स :: बिंदपाराम & lt; Arel :: नोड :: नोड & lt; ऑब्जेक्ट & lt; BasicObject
Arel :: नोड्स :: नोड
No comments:
Post a Comment