我正在使用act-as-taggable-on 2.0.6在Rails 3.0.9应用程序中进行标记。我已成功将db支持的属性添加到Tag模型,例如每个标记都有一个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
模型继承模型方法?
答案 0 :(得分:1)
您需要添加此/config/initializers/tag_monkey_patch.rb
class ActsAsTaggableOn::Tag
def subscribable?
!feed_url.blank?
end
end
答案 1 :(得分: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">
答案 2 :(得分:0)
根据我的理解,你不应该像这样声明一个新的“Tag”模型,但是应该覆盖这样的类:
class ActsAsTaggableOn::Tag
def total_count
...
end
end