- ベストアンサー
Rubyでldapライブラリが利用できない
- Rubyでldapを利用したいと思っているのですがうまくいかず悩んでいます。
- ruby-ldap.x.x.x.tar.gzをダウンロードしましたが、接続時に"uninitialized constant LDAP (NameError)"というエラーが出ます。
- 書籍やWEBを参考にしてスクリプトを組んだのですが、トレースできず問題の解決に困っています。お分かりの方がいらっしゃれば教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
(正)←/usr/lib/ruby/1.8/net/ldap.rb を指定 これは、質問にある ruby-ldapじゃなくて、Net::LDAPのファイルじゃないですか? RubyForge: Pure Ruby LDAP Tools: Project Info http://rubyforge.org/projects/net-ldap/ であるなら名前空間が違うので LDAPでは何も見つからないはずです。 require 'ldap' でエラーになってないというのもわかりませんが、 Net::LDAPを使うのなら require 'net/ldap' ldap = Net::LDAP.new :host => server_ip_address, :port => 389, :auth => { :method => :simple, :username => "cn=manager,dc=example,dc=com", :password => "opensesame" } filter = Net::LDAP::Filter.eq( "cn", "George*" ) treebase = "dc=example,dc=com" ldap.search( :base => treebase, :filter => filter ) do |entry| puts "DN: #{entry.dn}" entry.each do |attribute, values| puts " #{attribute}:" values.each do |value| puts " --->#{value}" end end end p ldap.get_operation_result こういう感じになるのですが。 ldap.so はどのディレクトリにあって、そもそもインストールは どういう手順でやったのでしょうか?
その他の回答 (1)
- sakusaker7
- ベストアンサー率62% (800/1280)
>require "ldap" ←/usr/lib/ruby/1.8/netldap.rb を指定 ここの意味がわからないのですがどういうことですか? ldap.so というのがインストール時に作られていて、それを読み込むと思うのですが。 netldap.rb ってどこから出てきたファイルなのかもわかりません。 >もしお分かりの方がおりましたらお教えください。 「おりましたら」というのを丁寧に言っている意味で書いているのなら間違いです。 自分、もしくは自分の身内を下げて言うときに使う表現ですよ。
補足
(誤)←/usr/lib/ruby/1.8/netldap.rb を指定 (正)←/usr/lib/ruby/1.8/net/ldap.rb を指定 でした。 ldap.soファイルは存在しています。
お礼
ご丁寧な解答ありがとうございました。 /usr/lib/ruby/1.8/配下に、ldap.rb というファイルを作成していたことがあり、こちらを読んでいました。 require 'net/ldap' として、ご指摘のようにスクリプトを組みなおしたところ正常にどうさいたしました。