ruby-ldap gem在rails3应用程序中不起作用,但在rails控制台中工作

时间:2012-08-16 02:28:55

标签: ldap ruby-on-rails-3.2

我想构建一个使用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

1 个答案:

答案 0 :(得分:1)

几个月后,我有点弄清楚问题是什么......

ruby​​-ldap gem在rails默认服务器上运行时遇到问题:Webrick。

尝试Pow或Passenger,它完美无缺!

阅读本页后:http://www.ruby-forum.com/topic/62920

我尝试将控制器或模型文件中的require'ldap'移动到环境文件的最顶行(xxxlocal.rb)

在我这样做之后,我也能在webrick中运行它。