2011-07-26 14 views
1

複数のモデルで共有される機能をモジュールに抽象化したいと考えています。モジュールをRubyのモデルに組み込む

class Report < ActiveRecord::Base 
    include AppModel 
    has_and_belongs_to_many :tag 
    belongs_to :city 
    belongs_to :user 
end 

(?。また、私はstackoverflowの上で私のコードスパン複数行を作るのですか、それは私の改行を保存するdoesnの `t)

は、その後、私は(モジュールを持っている:

私は、このモデルを持っていますアプリ/モデル/ app_model.rb中):

module AppModel 
    def self.list 
    find(:all, :order => 'name asc').map { |item| [item.name, item.id] } 
    end 
end 

が、私はReport.listをすれば、それは動作しません。私がモジュールでdef functionまたはdef self.functionを実行すると問題があると思われますか?

もう一度私の質問は、モジュールで定義されているReport.listReport.find_taggedのような機能をアクセシブルにするにはどうすればいいですか。

答えて

5

は、クラスレベルではなく、インスタンスメソッドを混在させます。 延長メソッドまたはを含むを使用してください。

P.S. SOのコードフォーマットを使用する{}

+0

あなたは[記事](http://railstips.org/blog/archives/2009/05/15/include-vs-extend-in-ruby)を読むことができます/)by John Nunemaker – Anatoly

+0

うまく動作します。 –

関連する問題