Is there a DRY way to pass bind variables to an AR Relation?

active-relation, rails-activerecord, ruby-on-rails

Solution

You can do it with a named placeholder:

where('name LIKE :name OR email LIKE :name OR postcode LIKE :name', :name => t)

This is often the best way to repeat a singular value several times in a query.

Problem

I have code like this: ``` t = "%#{term}%" where('name like ? or email like ? or postcode like ?', t, t, t) ``` As you can see it's performing a search across several fields. Is there a way to avoid the duplicated t? It's making me feel dirty. Thanks

Original source