例えばselect結果をinsertするような場合は効率面からActiveRecordを通さずそのままSQLを実行したい。select結果が数千件ある場合ARで素直に書くとそのまま数千回insert実行しなきゃならんので。 Railsでは基本ARで操作できるけど必要があればSQL書ける柔軟な所がある。 今回の場合ActiveRecord::Base::connection::executeを使用する。 Railsレシピブックで言うとP239の例。 1 Class Entry < ActiveRecord::Base 2 def self.select_insert_hogehoge 3 sqlstr = "hogehoge" 4 return connection.execute(sqlstr) 5 end 6 end