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

rails:3884

From: 前島真一 <netwillnet@g...>
Date: Wed, 10 Apr 2013 21:32:56 +0900
Subject: [rails:3884] Re: ActiveRecordにメソッドを追加したい

前島です。

railsのautoloadまわりが原因なのではないかという気がします。

■app/model/hoge.rb
class Hoge < ActiveRecord::Base
  include Foo
end

■lib/foo.rb
module Foo
   def added_method
   end
end

これだとどうでしょうか。



2013年4月10日 12:54 dezawa <dezawa@a...>:

> 出沢です
>
> 私の環境では呼び出せました。
> activerecord (3.0.7, 2.3.11, 2.3.5, 2.2.3)
> が入っていますが、試したのは 2.2.3 です。
>
> 久野さんのは
> > activerecord (2.1.1)
> ですね。
> バージョンの問題?
>
>
> (2013年04月10日 12:15), 久野孝泰 wrote:
> > 久野と申します。
> >
> > ActiveRecord::Baseを継承したクラスにメソッドを追加する際、
> > 機能の内容的にapp/model以下に追記するのが嫌だったので、
> > lib以下にメソッドの追加記述を行ったのですが、
> > 追加したメソッドが呼び出しできませんでした。
> >
> > どのようにすればメソッドの追加ができるでしょうか。
> >
> > -- 以下コード
> > ■app/model/hoge.rb
> > class Hoge < ActiveRecord::Base
> > end
> >
> > ■lib/foo.rb
> > class Hoge < ActiveRecord::Base
> >     def added_method
> >     end
> > end
> >
> > ■config/environment.rb
> > require 'lib/foo'
> >
> > ■実行
> > $ script/console
> >  > a = Hoge.new
> >  > a.added_method
> > NoMethodError: undefined method `added_method' for #<Hoge:0x7f6baa9d38d0>
> >
> > ■環境
> > $ ruby -v
> > ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
> >
> > $ gem list
> >
> > *** LOCAL GEMS ***
> >
> > actionmailer (2.1.1)
> > actionpack (2.1.1)
> > activerecord (2.1.1)
> > activeresource (2.1.1)
> > activesupport (2.1.1)
> > daemon_controller (1.0.0)
> > domain_name (0.5.3)
> > fastthread (1.0.7)
> > json (1.7.5)
> > mechanize (2.5.1)
> > mime-types (1.19)
> > net-http-digest_auth (1.2.1)
> > net-http-persistent (2.7)
> > nokogiri (1.5.5)
> > ntlm-http (0.1.1)
> > passenger (3.0.15)
> > rack (1.4.1)
> > rails (2.1.1)
> > rake (0.9.2.2)
> > rdoc (3.12)
> > rmagick (2.13.1)
> > ruby-ole (1.2.11.4)
> > rubygems-update (1.8.24)
> > rw_fastercsv (1.5.7)
> > spreadsheet (0.7.3)
> > unf (0.0.5)
> > unf_ext (0.0.5)
> > webrobots (0.0.13)
> >
>
>
> --
> ML: rails@r...
> 使い方: http://QuickML.com/
>



-- 
前島 真一(@netwillnet)
http://willnet.in/


添付ファイル

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

   @  3882 2013-04-10 05:15 [hisano@s...         ] ActiveRecordにメソッドを追加したい      
      3883 2013-04-10 05:54 ┗[dezawa@a...         ]                                       
-> @  3884 2013-04-10 14:32  ┗[netwillnet@g...     ]                                     
   @  3885 2013-04-11 06:56   ┗[hisano@s...         ]