从MetaWhere迁移到Squeal并远离使用符号

时间:2011-09-09 11:35:09

标签: ruby-on-rails activerecord meta-where squeel

我有一个应用程序,我想从MetaWhere迁移到Squeel,准备升级到Rails 3.1。

这主要是一个简单的过程,但我有一个案例会给我带来一些问题。问题是我将字段和值都指定为变量。在我的MetaWhere查询中,我可以简单地从字段名称中创建符号,然后在查询中使用它,但Squeel不使用符号,而是依赖于instance_eval,我无法弄清楚如何使用它创建类似的查询...

原始查询的说明可能是:

Article.where("#{field_name}".to_sym.matches => '%' + field_value + '%')

如何在Squeel中创建类似的查询?

我知道我可以指定我想使用遗留符号功能,但我宁愿完全转换为新语法。

1 个答案:

答案 0 :(得分:1)

这有效:

Article.where{article.send(field_name) =~ '%' + field_value + '%'}

小写的“文章”是表名。