2012-12-27 20 views
7

ActiveRecord :: Base Connectionクラスを使用してSQL文を実行した後、PostgreSQLで処理されたレコードの数を調べるにはどうすればよいですか?ActiveRecord :: Base.connection.execute(sql)の結果 - PostgreSQL

temp_sql = "UPDATE table_a SET column_a ='abc' WHERE column_b = 1" 
result = ActiveRecord::Base.establish_connection(@db).connection.execute(temp_sql) 

これを行うには、より良い方法を提案できますか?上記の更新ステートメントは簡単な質問であることを覚えておいてください。私の実際のクエリは「セットベース」であり、複雑なテンポラリテーブルの作成、更新、挿入ステートメントが必要です。

答えて

4

PG :: Resultクラスで答えを見つけました。方法はcmd_tuplesです。

temp_sql = "UPDATE table_a SET column_a ='abc' WHERE column_b = 1" 
result = ActiveRecord::Base.establish_connection(@db).connection.execute(temp_sql) 
number_of_records = result.cmd_tuples