0

Rails 3.0.9 アプリでのタグ付けには、acts-as-taggable-on 2.0.6 を使用しています。タグ モデルに db-backed 属性を正常に追加しました。たとえば、各タグには RSS フィードがあるため、呼び出し@post.tags.first.feed_urlてデータベースから feedburner URL を取得できます。

しかし、Tag モデルに属性を追加することはできますが、インスタンス メソッドを追加することはできないようです。インスタンスメソッドを作成しました:

class Tag < ActiveRecord::Base
  ...
  def subscribable?
    !feed_url.blank?
  end
  ...
end

しかし、私が呼び出す@post.tags.first.subscribable?と、エラーが発生します:

NoMethodError: undefined method `subscribable?' for #<ActsAsTaggableOn::Tag:0x00000100d32290>

ActsAsTaggableOn::Tagオブジェクトにモデルからモデル メソッドを継承するように指示する方法はありTagますか?

4

3 に答える 3

1

これを追加する必要があります/config/initializers/tag_monkey_patch.rb

class ActsAsTaggableOn::Tag
  def subscribable?
    !feed_url.blank?
  end
end
于 2013-06-26T16:32:32.543 に答える
0

私が理解していることから、このような新しい「タグ」モデルを宣言するべきではありませんが、次のようにクラスをオーバーライドする必要があります。

class ActsAsTaggableOn::Tag
   def total_count
      ...
   end
end
于 2013-01-22T23:42:15.257 に答える
0

私はまったく同じことを疑問に思っています。私が試した限り、それは私のために働いていません..

class Tag < ActsAsTaggableOn::Tag
   def total_count
     ...
   end
end

汚いチェーンフォームの例でそれを呼び出すと、次のようになります。

my_model.my_instance.tag_counts_on(:tags).first.total_count

私は得る

undefined method `total_count' for #<ActsAsTaggableOn::Tag id: 1, name: "first">
于 2012-10-10T08:54:22.790 に答える