我有两个模型:Item
和Tag
。两者都有一个名称属性。我想查找带有几个标签的项目。rails:获取所有标记为x和y AND z的项目
class Item < ActiveRecord::Base
has_many :tags
validates_presence_of :name
end
class Tag < ActiveRecord::Base
belongs_to :item
validates_presence_of :name
end
由于标签ID的列表,我可以很轻松地获得标签的物品的清单,一个标签或其他:
# Find the items tagged with one or more of the tags on tag_ids
Item.all(:conditions => ['tags.id in (?)', tag_ids], :joins => :tags)
如果tag_ids
是{1,4}
,然后我得到的所有图片用1或4或两者标记。
我现在想知道如何获得标记有两个图片 - 1 和 4.
我甚至无法想象,这里需要的SQL。
我有同样的问题......真是巧合! – fjuan 2010-06-15 14:45:29
我相信,如果一个项目标有“both”标签,那么代码也会给你“重复”,这可能不好(使用:group =>'items.id'使它不会返回重复项)。 – rogerdpack 2012-06-04 22:13:22