11

我有一个包含 2 个“不常见”列的表 -orderlike.

该表在两个数据库上复制 -MySQLPostgreSQL.

而且我需要相同的应用程序来连接到两个数据库并在两者上使用相同的查询:

PageModel.where("`like` >= ?", params[:liked])

MySQL仅适用于。

如何ActiveRecord引用列名?

就像是:

PageModel.where("%s >= ?" % quote_column_name(:like), params[:liked])

我发现了一个暂时没用的方法——它只返回列名而不引用它。

http://www.rubydoc.info/docs/rails/3.2.8/ActiveRecord/ConnectionAdapters/Quoting:quote_column_name

也许它只是一个占位符,还有另一种方法可以做到这一点?

4

1 回答 1

16

这取决于从一个数据库适配器到另一个。所以基本上,每个适配器都用自己的定义覆盖这个方法。

您对以下内容感兴趣:

ActiveRecord::Base.connection.quote_column_name "my_column"
于 2012-12-16T12:08:40.080 回答