1

LDAP で認証された rails3 Web サイトを構築したいので、以前の rails2 アプリで使用していた ruby​​-ldap gem (net/ldap ではない) を選択し、非常にうまく機能します。

しかし、Rails3 アプリで奇妙なエラーが発生し続けます。以下のコードを参照してください。

require 'ldap'
class WelcomeController < ApplicationController

  def index  
    begin
      @test = LDAP::Conn.new('10.72.64.11', 389)
    rescue LDAP::Error
      p LDAP::Error
    end  
    render :text => "ok"
  end
end 

welcome#index はルート ルートです。ほとんどの場合、LDAP::Conn.new('10.72.64.11', 389) に移動するとアプリがクラッシュします。デバッグと追跡に「pry」を使用しようとしても、

[1]    24797 trace trap  rails s

WEBrick サーバーはその時点で終了します。

「pry」を使用してステップを実行すると、別のタイプのエラーがスローされることがあります。 #<NameError: uninitialized constant WelcomeController::LDAP>

コンソールで試してみると、すべてうまくいきます。

1.9.3-p194 :001 > require 'ldap'
 => true 
1.9.3-p194 :002 > @test = LDAP::Conn.new('10.72.64.11', 389)
 => #<LDAP::Conn:0x00000101289568> 
1.9.3-p194 :003 > 

このクレイジーなものから私を導いてくれませんか? ruby 1.9.3p194 と rails 3.2.8 を使用しています

4

1 に答える 1

1

数ヶ月後、私は問題が何であるかを理解しています...

ruby-ldap gem は、Rails のデフォルト サーバーである Webrick での実行に問題があります。

Pow または Passenger を試してみてください。完璧に機能します。

このページを読んだ後: http://www.ruby-forum.com/topic/62920

require 'ldap' をコントローラーまたはモデル ファイルから、環境ファイル (xxxlocal.rb) の一番上の行に移動しようとしました。

それをした後、webrickでも問題なく実行できました。

于 2012-12-10T08:20:18.917 に答える