[Rails Tip] DataMapper M:M Association Bug and Workaround

| 1 min read

It was confirmed that DataMapper is incorrectly setting table names in SQL JOINs.

So for instance, the following code would generate an SQL error:

type.jobs.all(:"country.name".like => "%#{params[:location]}%")

There is a workaround, however the workaround requires manual looping of the dataset thus produces N+1 queries.

type.jobs.all.reject do |job|
! job.country.name.downcase.include?(params[:location].downcase)

But at least it works. ;)

Enjoy what you are reading? Sign up for a better experience on Persumi.