Searching associations in DataMapper 0.3
One of the first things you discover when you start playing with DataMapper is how to specify conditions when searching a database table. This will get you all the chocolate biscuits:
Biscuit.all(:chocolate => true)
After I'd read some of the docs I hoped I might be able to use a similar approach to search my associations. Given that a packet
has_many biscuits I hoped I'd be able to do something like this:
packet.biscuits(:broken => true)
I was wrong, and you'd probably only expect that to work if (like me) you hadn't done much with DataMapper yet. Still, you might.
In the current version (0.3.0) you do it like this:
Biscuit.all(:packet_id => packet.key, :broken => true)
That's fine. I dare say associations will grow the ability to be searched in due course, but in the meantime, maybe that'll help clarify it for somebody...
I love feedback and questions — please get in touch on Twitter or leave a comment.