مشكلة مع RACK/OPENID في القضبان 3 [يحتاج الأصليون إلى العمل بشكل صحيح

StackOverflow https://stackoverflow.com/questions/2316729

سؤال

أقوم بتثبيت المكون الإضافي 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"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top