我有一个包含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
也许它只是一个占位符,还有另一种方法可以做到这一点?
答案 0 :(得分:14)
这取决于从一个数据库适配器到另一个数据库适配器。基本上,每个适配器都会使用自己的定义覆盖此方法。
您对以下内容感兴趣:
ActiveRecord::Base.connection.quote_column_name "my_column"