2012-02-12 14 views
6

मुझे devise से त्रुटि मिल रही है" उपयोगकर्ता उत्पन्न होने पर "devise' विधि का जवाब नहीं देता है" रेल उत्पन्न होता है वसीयत: स्थापित "। विचार कैसे हल करें?devise से त्रुटि प्राप्त हो रही है "उपयोगकर्ता" devise 'विधि का जवाब नहीं देता है "चलाते समय" रेल उत्पन्न होते हैं: इंस्टॉल करें "

वास्तव में "रेल उत्पन्न करने की कोशिश करते समय" स्थापित करने का प्रयास करते समय यह त्रुटि भी मिलती है: इंस्टॉल करें "मैंने अभी ध्यान दिया है।

नोट्स:

Gregs-MacBook-Pro:testapp greg$ rails generate devise:install 
/Library/Ruby/Gems/1.8/gems/devise-2.0.1/lib/devise/rails/routes.rb:406:in `raise_no_devise_method_error!': User does not respond to 'devise' method. This usually means you haven't loaded your ORM file or it's being loaded too late. To fix it, be sure to require 'devise/orm/YOUR_ORM' inside 'config/initializers/devise.rb' or before your application definition in 'config/application.rb' (RuntimeError) 
    from /Library/Ruby/Gems/1.8/gems/devise-2.0.1/lib/devise/rails/routes.rb:207:in `devise_for' 
    from /Library/Ruby/Gems/1.8/gems/devise-2.0.1/lib/devise/rails/routes.rb:203:in `each' 
    from /Library/Ruby/Gems/1.8/gems/devise-2.0.1/lib/devise/rails/routes.rb:203:in `devise_for' 
    from /Users/greg/source_rails/testapp/config/routes.rb:2 
    from /Library/Ruby/Gems/1.8/gems/actionpack-3.2.1/lib/action_dispatch/routing/route_set.rb:272:in `instance_exec' 
    from /Library/Ruby/Gems/1.8/gems/actionpack-3.2.1/lib/action_dispatch/routing/route_set.rb:272:in `eval_block' 
    from /Library/Ruby/Gems/1.8/gems/actionpack-3.2.1/lib/action_dispatch/routing/route_set.rb:249:in `draw' 

और

Gregs-MacBook-Pro:testapp greg$ ruby -v 
**ruby 1.8.7** (2010-01-10 patchlevel 249) [universal-darwin11.0] 

Gregs-MacBook-Pro:testapp greg$ rails -v 
**Rails 3.2.1** 

Gregs-MacBook-Pro:testapp greg$ gem list 

*** LOCAL GEMS *** 

actionmailer (3.2.1) 
actionpack (3.2.1) 
activemodel (3.2.1) 
activerecord (3.2.1) 
activeresource (3.2.1) 
activesupport (3.2.1) 
addressable (2.2.6) 
arel (3.0.0) 
bcrypt-ruby (3.0.1) 
builder (3.0.0) 
bundler (1.0.22) 
coffee-rails (3.2.2) 
coffee-script (2.2.0) 
coffee-script-source (1.2.0) 
devise (2.0.1) 
erubis (2.7.0) 
execjs (1.3.0) 
faraday (0.7.6) 
hike (1.2.1) 
i18n (0.6.0) 
journey (1.0.1) 
jquery-rails (2.0.0) 
json (1.6.5) 
mail (2.4.1) 
mime-types (1.17.2) 
multi_json (1.0.4) 
multipart-post (1.1.4) 
mysql (2.8.1) 
mysql2 (0.3.11) 
oauth (0.4.5) 
oauth-plugin (0.4.0.rc2) 
oauth2 (0.5.2) 
orm_adapter (0.0.6) 
polyglot (0.3.3) 
rack (1.4.1) 
rack-cache (1.1) 
rack-ssl (1.3.2) 
rack-test (0.6.1) 
rails (3.2.1) 
railties (3.2.1) 
rake (0.9.2.2) 
rdoc (3.12) 
rubygems-update (1.8.15) 
sass (3.1.15, 3.1.14) 
sass-rails (3.2.4) 
sprockets (2.1.2) 
sqlite3 (1.3.5) 
thor (0.14.6) 
tilt (1.3.3) 
treetop (1.4.10) 
tzinfo (0.3.31) 
uglifier (1.2.3) 
warden (1.1.0) 

उत्तर

46

ऐसा लगता है कि आप पहले से ही वसीयत विधि अपने उपयोगकर्ता मॉडल में बुलाया जा रहा है है। शायद आप पहले से ही rails g devise User भाग चुके हैं?

टिप्पणी करें कि बाहर निकलें, और devise_for :users लाइन पर अपनी रूट फ़ाइल में, यदि वहां है तो टिप्पणी करें।

+0

टी.के.एस - कि यह तय करने के लिए लग रहा था - समस्या क्या थी? - क्या मैंने गलत आदेश में आदेश जारी किए और किसी भी चीज को भर दिया गया? अब मुझे लगता है कि लाइनों को फिर से तैयार करना होगा? (मेरे ऊपर दिए गए आदेश थे: "रेल तैयार करते हैं: इंस्टॉल करें", "रेल तैयार उपयोगकर्ता उत्पन्न करते हैं", और "रेक डीबी: माइग्रेट करें"। – Greg

+5

@greg - चल रहा है 'रेल जी devise: install' में प्रारंभ करने के लिए प्रारंभकर्ता रखता है फ़ाइल 'कॉन्फ़िगरेशन/प्रारंभकर्ता/devise.rb'। यही वह है जो सभी विधियों को लोड करता है ताकि आपका एप्लिकेशन उनका उपयोग कर सके। यदि आप प्रारंभकर्ता के स्थान पर पहले' रेल जी उपयोगकर्ता बनाते हैं 'चलाते हैं, तो आपके उपयोगकर्ता मॉडल में विधियों को कॉल किया जाता है एप्लिकेशन के बारे में पता नहीं है। इसलिए जब भी आप कोई रेल आदेश चलाते हैं तो यह असफल हो जाएगा ... ठीक है, आपको जो त्रुटि मिल रही थी।यदि आप 'रेल सर्वर' या 'रेल सी' चलाने की कोशिश करते हैं, या जो भी हो, तो यह असफल भी होगा। – declan

+0

इस – cancelledout

0

मुझे यह वही समस्या थी। हालांकि मेरे लिए यह active_reload मणि के साथ एक संघर्ष के कारण हुआ था। एक बार मैंने हटा दिया कि सब ठीक था। मैं https://github.com/plataformatec/devise/issues/1597

+0

मैंने सोचा कि मैंने किया था। मैंने कहा कि यह सक्रिय रीलोड मणि – dabobert

1

से टिप मिली लोगों की है कि यहां निम्न त्रुटि के कारण पहुंचे के लिए:

User does not respond to 'devise' method. This usually means you haven't loaded your ORM file or it's being loaded too late. To fix it, be sure to require 'devise/orm/YOUR_ORM' inside 'config/initializers/devise.rb' or before your application definition in 'config/application.rb' (RuntimeError)

लेकिन आप पहले से ही अपने ORM ठीक से प्रारंभ कर दिया है, यह मणि संबंधित हो सकता है। मुझे एक पुराने ऐप पर एक ही समस्या हो रही थी और यह active_reload मणि के साथ असंगतता के कारण था। gem active_reload रेल 3.2 के साथ संगत नहीं है और इसे हटाया जाना चाहिए। active_reload को रेल 3.2 में शामिल किया गया है, इसलिए इसे निकालना सुरक्षित है।

मैं यहाँ से समाधान मिल गया: http://anlek.com/2012/02/user-does-not-respond-to-devise-method/

3

रेल & इन उत्तरों मेरे लिए काम नहीं किया के लिए एक ट्यूटोरियल पूर्ण कर रहा है, लेकिन कुछ खोज के बाद एक समाधान मिल गया। उम्मीद है कि यह किसी और की मदद करता है जो इस मुद्दे पर नया है और चल रहा है।

  1. जाएं: config/routes.rb फ़ाइल
  2. टिप्पणी बाहर लाइन devise_for :installs (सामने एक हैश टैग डाल)
  3. जाओ अपने रूबी टर्मिनल के लिए और फिर से दर्ज: rails generate devise:install

अब देवता को ठीक से स्थापित करना चाहिए & बाद की त्रुटियों को समाप्त किया जाना चाहिए।

Source

+0

था कृपया इसे करने से पहले किसी भी कॉन्फ़िगरेशन का बैकअप लें ... – simonmorley

संबंधित मुद्दे