ruby-on-rails - 有没有一种 DRY 方法可以将绑定(bind)变量传递给 AR 关系?

标签 ruby-on-rails rails-activerecord active-relation

我有这样的代码:

t = "%#{term}%"
where('name like ? or email like ? or postcode like ?', t, t, t)

如您所见,它正在跨多个字段执行搜索。

有没有办法避免重复的 t?这让我觉得很脏。

谢谢

最佳答案

您可以使用命名占位符来执行此操作:

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

这通常是在查询中多次重复奇异值的最佳方式。

关于ruby-on-rails - 有没有一种 DRY 方法可以将绑定(bind)变量传递给 AR 关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14526389/

相关文章:

ruby-on-rails - 尝试创建新记录时为"no implicit conversion of Symbol into String"

css - 修复引 rails 道中的图像

ruby-on-rails - 将时间戳添加到现有表

ruby-on-rails - 奇怪的 ActiveRecord 问题——比如生成无效的 SQL

ruby-on-rails - 关联模型的 Rails ActiveRecord 条件验证?

ruby-on-rails - 将 strip 添加到 Rails 应用程序

ruby-on-rails - Pry-Remote 未触发 Rails 4

ruby-on-rails - Rails - 有什么方法可以为模型的 ActiveRecord::Relation 查询设置可重写的 "default"过滤器(即预运行类方法)?

mysql - sql : DISTINCT give me duplicate results

activerecord - 如何从 Rails 的查询中排除 id 数组(使用 ActiveRecord)?