28th Thu
RailsでDBクエリを直接発行する方法
例えばselect結果をinsertするような場合は効率面からActiveRecordを通さずそのままSQLを実行したい。select結果が数千件ある場合ARで素直に書くとそのまま数千回insert実行しなきゃならんので。
Railsでは基本ARで操作できるけど必要があればSQL書ける柔軟な所がある。
今回の場合ActiveRecord::Base::connection::executeを使用する。
Railsレシピブックで言うとP239の例。
ruby>>
Class Entry < ActiveRecord::Base
def self.select_insert_hogehoge
sqlstr = "hogehoge"
return connection.execute(sqlstr)
end
end
<<ruby
posted by
ysakaki on Thu 28 Aug 2008 at 15:53 with 0 comments