مشكلة مع RACK/OPENID في القضبان 3 [يحتاج الأصليون إلى العمل بشكل صحيح
-
22-09-2019 - |
سؤال
أقوم بتثبيت المكون الإضافي open_id_authentication ولدي هذا الخطأ:
/usr/lib/ruby/gems/1.9.1/gems/activesupport-3.0.0.beta/lib/active_support/dependencies.rb:167:in `require': no such file to load -- rack/openid (LoadError)
عندما أحاول أن أبدأ rails server
في الواقع ، تم تثبيت Rack-Openid في نظامي ويمكنني تحميله من IRB:
irb(main):001:0> require 'rack/openid'
=> true
حاولت إضافة اختراق إلى Gemfile كما فعلت مع Ruby-Openid ، لكنها لم تساعد:
gem "ruby-openid", :require => "openid"
gem "rack-openid", :require => "rack/openid"
لقد حاولت أيضا
gem "ruby-openid", :require => "rack/openid"
لكن:
/usr/lib/ruby/gems/1.9.1/gems/bundler-0.9.7/lib/bundler/runtime.rb:38:in `require': no such file to load -- rack/openid (LoadError)
في تطبيق Rails 2.3.5 ، لا توجد هذه المشكلة ولا يمكنني فهم سبب حدوثها في Rails 3.
المحلول
المشكلة هي أن هذا الرمز في الجزء العلوي من البرنامج المساعد init.rb
if Rails.version < '3'
config.gem 'rack-openid', :lib => 'rack/openid', :version => '>=0.2.1'
end
لا يبدو أن Bundler يلتقط متطلبات الأحجار الكريمة حتى تفتقد إلى rack-openid
جوهرة.
الحل هو إضافة ما يلي إلى Gemfile
بدلاً من ruby-openid
. (rack-openid
يعتمد على ruby-openid
لكن الأحجار الكريمة تدرك هذا وستقوم بتثبيته حسب الحاجة)
gem 'rack-openid', '>=0.2.1', :require => 'rack/openid'
لا تنسى الجري bundle install
بعد تحديث gemfile الخاص بك.
نصائح أخرى
أنا أفهم مشكلتك لأن Ruby OpenID يمكن أن تكون غير منتظمة للغاية ، لأسباب صغيرة .. لقد قمت بتثبيتها في العمل ، لكن لا يمكنني الحصول عليها في المنزل! سأعطي وصفة العمل الخاصة بي:
لدي الإضافات (فقط)
Authlogic_openid من: http://github.com/binarylogic/authlogic_openid
معرف مفتوح من: http://github.com/senthilnambi/open-id
ال الأحجار الكريمة:
Authlogic (2.1.3)
Authlogic-oid (1.0.4)
OpenID (0.0.1)
رف (1.0.1)
Openid (1.0.1)
Ruby-Openid (2.1.7)
في البيئة (فقط):
config.gem "authlogic"
ص!
gem "rack-openid", :require => "rack/openid"