【发布时间】:2013-01-25 16:45:37
【问题描述】:
我有这样的代码:
t = "%#{term}%"
where('name like ? or email like ? or postcode like ?', t, t, t)
如您所见,它正在跨多个字段执行搜索。
有没有办法避免重复的 t?这让我觉得很脏。
谢谢
【问题讨论】:
标签: ruby-on-rails rails-activerecord active-relation
我有这样的代码:
t = "%#{term}%"
where('name like ? or email like ? or postcode like ?', t, t, t)
如您所见,它正在跨多个字段执行搜索。
有没有办法避免重复的 t?这让我觉得很脏。
谢谢
【问题讨论】:
标签: ruby-on-rails rails-activerecord active-relation
您可以使用命名占位符来做到这一点:
where('name LIKE :name OR email LIKE :name OR postcode LIKE :name', :name => t)
这通常是在查询中多次重复奇异值的最佳方式。
【讨论】:
t = "%#{term}%"
where('name || email || postcode like ?', t)
【讨论】: