【发布时间】:2012-01-08 17:15:55
【问题描述】:
假设我有一个讨论模型,并且可以标记一个讨论。这些标签通过标签表与讨论相关联。
我想定义一个基本上可以做到的方法 .tagged_with(tag):
def tagged_with
Discussion.where(#something about tags include the tag given)
end
我确实已经设置了一些可能有用的方法。例如,我有 tag_list
def tag_list
tags.map(&:name).joins(", ") #my tags are separated by commas, not spaces)
end
如果有人知道基于一个标签修剪讨论模型的简单问题的答案,我如何将其扩展为更具适应性 - 例如,接受多个标签的参数,并能够指定任何或者所有都是必要的。例如:
Discussion.tagged_with(tag1, tag2, :any => true)
仅供参考来自协会的一些代码:
has_many :taggings, :as => :taggable
has_many :tags, :through => :taggings, :source => :tag, :source_type => "Tag"
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 tags tagging