2012-12-16 13 views
7

2つの「一般的でない」列を含む表があります。orderlikeです。見積もり列の名前

テーブルは、2つのデータベース(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

おそらくそれは単なるプレースホルダで、これを行い、別の方法があるのですか?

答えて

10

これは、データベースアダプタによって異なります。基本的に、各アダプタは独自の定義でこのメソッドをオーバーライドします。期待通りに動作し、

ActiveRecord::Base.connection.quote_column_name "my_column" 
+0

感謝:

あなたが興味を持っています。 –

関連する問題