如何使ActsAsTaggableOn ::标签继承方法从标签模式

问题描述:

我使用行为-AS-加标签-2.0.6在Rails 3.0.9应用程序标记。我已成功将数据库支持的属性添加到标记模型中,例如每个标记都有一个RSS源,因此我可以拨打@post.tags.first.feed_url来从我的数据库获取feedburner URL。如何使ActsAsTaggableOn ::标签继承方法从标签模式

不过,虽然我可以将属性添加到标签的模式,似乎我不能添加实例方法。我创建的实例方法:

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模型模型的方法呢?

我想知道同样的事情。至于我已经尝试过,但不是为我工作..

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"> 

据我所知,你不应该宣布这样一个新的“标签”的模式,而是应该要重写类是这样的:

class ActsAsTaggableOn::Tag 
    def total_count 
     ... 
    end 
end 
+0

你的答案看起来像它的工作,但是当我更换'和'类ActsAsTaggableOn :: Tag'类标签 2013-01-26 14:31:36

+0

你在哪里压倒班级?您可以尝试将它放入初始化程序中,以确保它在服务器启动时得到应用。 – MichaelAP 2013-01-28 20:36:01

+0

我需要标记模型(以及控制器,视图等),以便用户可以编辑标记以添加前面提到的feed_url属性。这是在我替换'和'类ActsAsTaggableOn :: Tag',或者'类ActsAsTaggableOn ::标签 2013-02-08 16:39:24

您需要添加此/config/initializers/tag_monkey_patch.rb

class ActsAsTaggableOn::Tag 
    def subscribable? 
    !feed_url.blank? 
    end 
end