Вот модели:
class Foo
include DataMapper::Resource
property :id, Serial
has n, :foo_bars
has n, :bars, :through => :foo_bars
end
class Bar
include DataMapper::Resource
property :id, Serial
has n, :foo_bars
has n, :foos, :through => :foo_bars
end
class FooBar
include DataMapper::Resource
belongs_to :foo, :key => true
belongs_to :bar, :key => true
end
Вставка данных:
f = Foo.create
b1 = Bar.create
b2 = Bar.create
b3 = Bar.create
f.bars = [b1, b2, b3]
f.save
Итак, теперь у меня есть один foo
, три bar
с и foo
имеет все bar
с.Все в порядке.
Теперь я хочу запросить foo
с bar
# 1 и bar
# 3:
Foo.all(Foo.bars.id => [1,3])
=> [#<Foo @id=1>] #ok
Foo.all(Foo.bars.id => [1,3]).count
=> 2 #why?
И вот вопрос: почему массивдлина равна 1, а количество коллекций равно 2?Как я могу получить оба 1?Я хотел бы придерживаться запроса с вложенными условиями.Это ошибка или неправильное использование?
DM 1.1.0