在DataMapper文档中提供Tag/Photo exemple:
class Photo
include DataMapper::Resource
property :id, Serial
has n, :taggings
has n, :tags, :through => :taggings
end
class Tag
include DataMapper::Resource
property :id, Serial
has n, :taggings
has n, :photos, :through => :taggings
end
class Tagging
include DataMapper::Resource
belongs_to :tag, :key => true
belongs_to :photo, :key => true
end
我想选择所有没有照片的标签 我知道我可以做到
Tag.select { |tag| tag.photos.size < 1}
但我想要更多Datamapper语法。像
这样的东西Tag.all :photos.count.lt => 1 #not works
有办法做到这一点吗? 有谁知道高级查询的一个很好的Datamapper文档? Documentation at the site非常好,但太基本了。
TKZ
答案 0 :(得分:0)
Tag.all(:photos => nil)
将在2个SQL查询中获得您想要的内容。
如果您更喜欢一个复杂查询,则必须编写自定义SQL并使用repository(:default).adapter.select('SELECT ...')
答案 1 :(得分:0)
试试这个:
Tag.photos.all(:count.lt => 1)