2

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

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

原始查询的示例可能是:

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

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

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

4

1 回答 1

1

这有效:

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

小写的“文章”是表名。

于 2011-11-08T02:56:32.377 回答