これまでしばらく前にActiveRecordだけで使用することを意図していましたが、使用可能なポリモーフィックな関連付けに必要な方法として、小さなモジュールを作成しました。ここActiveRecordモジュールを任意のモデルで使用するように修正する
# config/initializers/acts_as_votable.rb
module ActsAsVotable
end
module ActiveRecord
class Base
class << self
cattr_accessor :votable
def acts_as_votable
has_many :votes, :as => :voteable
end
def acts_as_voter
has_many :votes, :as => :voter
end
def votable?
method_defined? :votes
end
end
def votable?
self.class.send(:method_defined?, :votes)
end
end
end
とを:私の以前のコードを見てみモンゴでそれを使用して、私はこのintanceで作成する必要がある団体のための方法のすべてをmongoid使用していますので、同じ名前と、ここでeverthingを持っていますどのように使用されたのですか:
class Recipe < ActiveRecord::Base
acts_as_votable
# more stuff...
end
ここで2つの問題は、まずActiveRecord::Base
を拡張しています。ActiveRecord
から継承するモデルだけでなく、どのモデルでこのモデルを作ることができますか?次に、実際にはActsAsVotable
のような空のモジュールが必要ですか?私はここで間違って何をしていますか?
すべてのコードをモジュールActsAsVotable
に入れるだけで、私のモデルからincludes ActsAsVotable
に電話することはできませんか?
私は本当にあなたの質問を理解していません。あなたの目標を目指そう:それをどのように使いたいのですか? – apneadiving
基本的には、 'acts_as_voter'や' acts_as_votable'を含んでいれば、モデルに含めるメソッドとアソシエーションがたくさんありますよね?このプラグインのようなもの:https://github.com/eMancu/acts_as_commentable/blob/master/lib/comment_methods.rb –