引用列名称
我有一个包含2个“不常见”列的表 – order
like
。
该表在两个数据库上复制MySQL
和PostgreSQL
。
我需要相同的应用程序连接到两个数据库并在两个上使用相同的查询:
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
也许它只是一个占位符,还有另一种方法可以做到这一点?
这取决于从一个数据库适配器到另一个。 基本上,每个适配器都会使用自己的定义覆盖此方法。
你对以下内容感兴趣:
ActiveRecord::Base.connection.quote_column_name "my_column"