11

2 つの「珍しい」列を含むテーブルがあります -orderlike.

MySQLテーブルは、 と の 2 つのデータベースに複製されます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

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

4

1 に答える 1

16

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

あなたが興味を持っている:

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