1

我想建立一个使用 LDAP 认证的 rails3 网站,所以我选择了我们在旧的 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 回答