[前][次][番号順一覧][スレッド一覧]

rails:3448

From: take_tk <ggb03124@n...>
Date: Sun, 27 Jun 2010 02:44:38 +0900
Subject: [rails:3448] Re: ActiveRecord で添付ライブラリを使いたい

たけ(tk)です。

[rails:3446] ActiveRecord で添付ライブラリを使いたい にて 
naopontan <naopontan@g...> さん 曰く:

> モデル内で IPAddr クラスを使いたいので以下の記述をしました。
> 
> require 'ipaddr'
> class Ipaddr < ActiveRecord::Base
>   def hoge
>     IPAddr.new "192.168.2.0/24"
>   end
> end
> 
> しかし、console で実行すると以下のエラーとなります。
> >> Ipaddr.new.hoge
> NameError: uninitialized constant Ipaddr::IPAddr
>         from /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:105:in
> `const_missing'
>         from /home/takaesu/project/mcocs.git/app/models/ipaddr.rb:4:in `hoge'
                                                          =========

元々のファイルが「ipaddr.rb」なので、
「require "ipaddr"」しても自分自身をロードしようとしている(ロード済みな
ので何もしない)のではないのかな?

対策としては

(a)rubyやrailsの既存のファイル名と衝突しないように「ipaddr.rb」の名前
を変える。もしくは、

(b)絶対パスで require する。

require "/usr/lib/ruby/1.8/ipaddr.rb"

でどうでしょうか?

take_tk = kumagai hidetake

--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

      3446 2010-06-26 10:05 [naopontan@g...      ] ActiveRecord で添付ライブラリを使いたい 
      3447 2010-06-26 10:26 ┣[okkez000@g...       ]                                       
->    3448 2010-06-26 19:44 ┗[ggb03124@n...       ]                                       
      3450 2010-06-28 06:26  ┗[naopontan@g...      ]