रेल से 3.0 से 3.2 तक मेरे ऐप को माइग्रेट करने का प्रयास कर रहा है, और इसके हिस्से के रूप में मैं डेविस मणि को भी अपडेट कर रहा हूं। यह पता चला कि नए देव को नए OmniAuth मणि की आवश्यकता है। मेरे पास फेसबुक प्रमाणीकरण OmniAuth के साथ कॉन्फ़िगर किया गया है। माइग्रेशन गाइड पढ़ने के बाद मैंने omniauth-facebook मणि भी जोड़ा है और इसे devise.rb में कॉन्फ़िगर किया है।OmniAuth 1.0 पर माइग्रेट करना: अपरिभाषित विधि `user_omniauth_authorize_path '
ActionView::Template::Error (undefined method `user_omniauth_authorize_path' for #<#:0x00000003b01e88>)
मैं फेसबुक प्रवेश बटन के लिए इस पथ का उपयोग किया गया था:
अब मैं इस त्रुटि मिल रही है। अब मुझे क्या उपयोग करना चाहिए?
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable, :lockable and :timeoutable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:omniauthable
पूर्ण सर्वर लॉग:
Started GET "/" for 127.0.0.1 at 2012-02-22 10:39:27 +0200
Processing by PagesController#guardian as HTML
[paperclip] Duplicate URL for photo with /system/:attachment/:id/:style/:filename. This will clash with attachment defined in Asset class
Rendered pages/guardian.html.erb within layouts/application (955.6ms)
Completed 500 Internal Server Error in 1245ms
ActionView::Template::Error (undefined method `user_omniauth_authorize_path' for #<#<Class:0x00000003b213f0>:0x00000003b01e88>):
30: </p>
31: </td>
32: <td>
33: <%= link_to "Login with Facebook", user_omniauth_authorize_path(:facebook), :class => "login_with_facebook_button" %>
34: </td>
35: </tr>
36: </table>
app/views/pages/guardian.html.erb:33:in `_app_views_pages_guardian_html_erb___1979224720320394612_27892940'
अद्यतन: ठीक है, मैं इस पथ समस्या का समाधान हो पाने के लिए प्रबंधित
उपयोगकर्ता मॉडल इस (user.rb) शामिल हैं। अब फेसबुक लॉगिन बटन पर क्लिक करते समय, मुझे यह मिल रहा है:
Started GET "https://stackoverflow.com/users/auth/facebook" for 127.0.0.1 at 2012-02-23 16:02:01 +0200
NoMethodError (undefined method `include?' for nil:NilClass):
omniauth (1.0.2) lib/omniauth/strategy.rb:165:in `call!'
omniauth (1.0.2) lib/omniauth/strategy.rb:148:in `call'
warden (1.1.1) lib/warden/manager.rb:35:in `block in call'
warden (1.1.1) lib/warden/manager.rb:34:in `catch'
warden (1.1.1) lib/warden/manager.rb:34:in `call'
यह सब थोड़ा उलझन में है। मैंने निर्दिष्ट करने के बाद पथ समस्या हल की: फेसबुक ट्यूटोरियल इस ट्यूटोरियल में accodring: https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview। अब मैंने यह भी देखा है कि मैं omniauth.rb को कॉन्फ़िगर/प्रारंभकर्ता फ़ोल्डर से याद कर रहा हूं, जिसका उल्लेख omniauth-facebook विकी में किया गया है। मैं निम्नलिखित सामग्री के साथ omniauth.rb बना लिया है, लेकिन अभी भी एक ही समस्या हो रही है:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, ENV['APP_ID'], ENV['APP_SECRET']
end
आप पूरा स्टैकट्रेस Pase कर सकते हैं कर रहे हैं? – shingara
जोड़ा गया सर्वर लॉग –
क्या आपने अपने उपयोगकर्ता मॉडल में सर्वव्यापी जोड़ा है? – shingara