Ruby on rails 3 如何使actsastaggaleon::Tag从标记模型继承方法
我在Rails 3.0.9应用程序中使用2.0.6上的acts as taggable进行标记。我已经成功地将db支持的属性添加到标记模型中,例如,每个标记都有一个RSS提要,因此我可以调用Ruby on rails 3 如何使actsastaggaleon::Tag从标记模型继承方法,ruby-on-rails-3,acts-as-taggable-on,Ruby On Rails 3,Acts As Taggable On,我在Rails 3.0.9应用程序中使用2.0.6上的acts as taggable进行标记。我已经成功地将db支持的属性添加到标记模型中,例如,每个标记都有一个RSS提要,因此我可以调用@post.tags.first.feed\u url从我的数据库中获取feedburner url 但是,虽然我可以向标记模型添加属性,但似乎无法添加实例方法。我创建了实例方法: class Tag < ActiveRecord::Base ... def subscribable?
@post.tags.first.feed\u url
从我的数据库中获取feedburner url
但是,虽然我可以向标记模型添加属性,但似乎无法添加实例方法。我创建了实例方法:
class Tag < ActiveRecord::Base
...
def subscribable?
!feed_url.blank?
end
...
end
有没有办法告诉
actsastaggaleon::Tag
对象从Tag
模型继承模型方法?我想知道完全相同的事情。就我所知,它对我不起作用
class Tag < ActsAsTaggableOn::Tag
def total_count
...
end
end
我得到一份工作
undefined method `total_count' for #<ActsAsTaggableOn::Tag id: 1, name: "first">
未定义的方法“总计数”#
据我所知,您不应该像这样声明一个新的“标记”模型,而应该像这样重写类:
class ActsAsTaggableOn::Tag
def total_count
...
end
end
您需要添加此
/config/initializers/tag\u monkey\u patch.rb
class ActsAsTaggableOn::Tag
def subscribable?
!feed_url.blank?
end
end
你的答案看起来是可行的,但当我用
类ActsAsTaggableOn::Tag
替换类标记
时,我仍然得到了我添加的实例方法的未定义方法,如上所述。你在哪里重写该类?您可以尝试将其放入初始值设定项中,以确保它在服务器启动时得到应用。我需要标记模型(以及控制器、视图等),以便用户可以编辑标记,以便添加我前面提到的feed_url属性。正是在模型中,我用类ActsAsTaggableOn::Tag
或类ActsAsTaggableOn::Tag
替换了类标记
,这两种方法都不允许我将实例方法附加到ActsAsTaggableOn::Tag对象。我认为ActsAsTaggable不会在Models目录中查找类,因此,您应该将它添加到初始值设定项中,以确保它在启动时得到应用。
class ActsAsTaggableOn::Tag
def total_count
...
end
end
class ActsAsTaggableOn::Tag
def subscribable?
!feed_url.blank?
end
end