2012-08-02 54 views
0

我使用行爲-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模型模型的方法呢?

回答

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

據我所知,你不應該宣佈這樣一個新的「標籤」的模式,而是應該要重寫類是這樣的:

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

你的答案看起來像它的工作,但是當我更換'和'類ActsAsTaggableOn :: Tag'類標籤<的ActiveRecord :: Base'我仍然得到未定義的方法例如我已經添加的方法,如上所述。 – 2013-01-26 14:31:36

+0

你在哪裏壓倒班級?您可以嘗試將它放入初始化程序中,以確保它在服務器啓動時得到應用。 – MichaelAP 2013-01-28 20:36:01

+0

我需要標記模型(以及控制器,視圖等),以便用戶可以編輯標記以添加前面提到的feed_url屬性。這是在我替換'和'類ActsAsTaggableOn :: Tag',或者'類ActsAsTaggableOn ::標籤<類Tag'模型的ActiveRecord :: Base',兩者都不讓我重視的實例方法來ActsAsTaggableOn ::標籤的對象。 – 2013-02-08 16:39:24

1

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

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