मुझे समस्या का पता चला। Authlogic के lib/authlogic/acts_as_authentic/base.rb
से इस स्निपेट को देखो: column_names
एक त्रुटि फेंकता
private
def db_setup?
begin
column_names
true
rescue Exception
false
end
end
हैं, तो db_setup?
अवास्तविक लौटाते हैं। base.rb
से अन्य समारोह को देखो, यह भी:
def acts_as_authentic(unsupported_options = nil, &block)
# Stop all configuration if the DB is not set up
raise StandardError.new("You must establish a database connection before using acts_as_authentic") if !db_setup?
raise ArgumentError.new("You are using the old v1.X.X configuration method for Authlogic. Instead of " +
"passing a hash of configuration options to acts_as_authentic, pass a block: acts_as_authentic { |c| c.my_option = my_value }") if !unsupported_options.nil?
yield self if block_given?
acts_as_authentic_modules.each { |mod| include mod }
end
तो db_setup?
रिटर्न झूठी, Authlogic एक अपवाद है, नहीं बल्कि एक ही अपवाद column_names
द्वारा फेंका फेंक देते हैं।
मेरे समस्या यह है कि column_names
इस अपवाद फेंक दिया गया था:
/Users/jason/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.2.1/lib/active_record/connection_adapters/postgresql_adapter.rb:1106:in `async_exec': PG::Error: ERROR: relation "users" does not exist (ActiveRecord::StatementInvalid)
LINE 4: WHERE a.attrelid = '"users"'::regclass
^
: SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = '"users"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
और है कि अपवाद के लिए कारण यह है कि है मेरे उपयोगकर्ता तालिका user
कहा जाता है, नहीं users
, लेकिन रेल ठीक से स्थापित करने मेरी pluralize_table_names
पर उठा नहीं किया गया था । एक बार जब मैंने अपनी pluralize_table_names
समस्या तय की (स्पष्ट रूप से जिस तरह से यह सेटिंग काम करता है रेल 3.1 में बदल दिया गया है), मेरी ऑथलॉगिक समस्या दूर हो गई।
तो आप इस समस्या हो रही है, तो आप इस की कोशिश करना चाहते हो सकता है: अपने देव मशीन
पर
- क्लोन कहीं Authlogic रेपो Authlogic के स्थानीय संस्करण का उपयोग करने के लिए अपने Gemfile बदलें (
'authlogic', :path => '/path/to/authlogic'
)
db_setup?
करने के लिए एक column_names
कॉल जोड़ें begin
/rescue
/end
खंड
- बाहर अगर आप किसी अन्य संभावित रूप से मीटर मिल देखें अयस्क सटीक और सूचनात्मक, त्रुटि, जैसे मैंने
स्रोत
2012-03-04 19:42:24
मैं एक बड़ा ऑथलॉगिक प्रशंसक होता था, और इसका इस्तेमाल करते हुए 2.x युग में कई ऐप्स थे (एलडीपीए, आरपीएक्स आदि के लिए एडाप्टर सहित)। मैंने इनमें से अधिकांश को 3.0.x और 3.2 तक अपग्रेड कर दिया है, लेकिन इस प्रक्रिया में निर्णय लिया गया कि पूरी तरह से इसे बेहतर बनाने के लिए माइग्रेट करना बेहतर और आसान है। यह आसान है, और कोड क्लीनर है (आमतौर पर 3.0 युग में डिज़ाइन किए जाने के कारण)। यह आपके प्रश्न का उत्तर नहीं देता .. मैं बस इसका जिक्र करता हूं ताकि अगर आप ऑथलॉगिक वापस काटते रहें तो आप इसे ध्यान में रखें; तैयार करने के लिए स्विचिंग इतना बड़ा सौदा नहीं है, और मूलभूत बातें पाने में आपको बहुत समय लगेगा। – tardate
अंततः मैं दूसरे दिन डेविस पर स्विच कर रहा था। यह एक आश्चर्यजनक रूप से आसान और दर्द रहित स्विच था। –
ऐसा लगता है कि यह तय किया जा सकता है। अब हमें मास्टर शाखा से खींचने के लिए रत्न में 'gem' authlogic ', git =>' git: // github.com/binarylogic/authlogic.git'' 'का उपयोग करने की आवश्यकता है। –