2012-12-16 13 views
7

Mam tabelę zawierającą 2 "niezbyt często" kolumny - order i like.Nazwa kolumny z cytatem

Tabela jest replikowana na dwóch bazach danych - MySQL i PostgreSQL.

I muszę samą aplikację do łączenia obu baz danych i używać tego samego kwerendy zarówno:

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

ta będzie działać tylko w MySQL.

Jak ustawić ActiveRecord, aby podać nazwę kolumny?

Coś jak:

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

znalazłem metodę, która jest bezużyteczny teraz - po prostu zwraca nazwę kolumny bez cytatem nim.

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

Być może to tylko symbol zastępczy i istnieje inna metoda, która to robi?

Odpowiedz

10

To zależy od jednego adaptera bazy danych do drugiego. Zasadniczo każdy adapter zastępuje tę metodę własną definicją.

Jesteś zainteresowany:

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

dzięki, działa zgodnie z oczekiwaniami. –

Powiązane problemy