使用Acts_As_Taggable_On进行Rails标记:查找上下文中的所有标记

时间:2010-05-04 19:57:47

标签: ruby-on-rails tags acts-as-taggable-on

在我正在研究的博客系统中,我想使用标签作为决定特定帖子出现位置的机制。我正在使用acts_as_taggable_on来设置两个上下文,即normal:tags上下文,然后是:audience上下文。

我正在使用帐户模型标记帖子模型,如下所示:

account.tag(post, :with => "cat1, cat2", :on => :audience)

我遇到的问题是检索特定上下文中的所有标记。我能够得到所有标签:

account.owned_tags # => "cat1, cat2, tag1", where tag1 came from the normal tag context

但我想做的只是在上下文中获取特定标签,如下所示:

acount.owned_tags_on :audience

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:1)

owned_tags是正常的ActiveRecord关联:

has_many :owned_tags, :through => :owned_taggings, :source => :tag, :uniq => true

因此,您可以根据条件执行find并选择所需的标签:

account.owned_tags.all(:conditions => ["context = ?", "audience"])