Is there currently a way to do a raw SQL select query using ActiveRecord in Rails 4.0.0.beta1? I see ActiveRecord::Base.execute no longer exists. What's the correct way of going about this?
質問する
43038 次
3 に答える
30
10 ペンスを追加するだけで、Model.connection.execute を使用した生のクエリは ActiveRecord モデルを返さず、生のデータ セットを返します。
以下は ActiveRecord モデルを返します。
MyModel.find_by_sql(query)
編集:もちろん、選択を実行していると仮定します。
于 2015-04-27T11:01:58.877 に答える
10
In Rails 4 (perhaps previous versions as well), if you're going with a custom query for speed, you can add a :skip_logging
argument to avoid writing to the log:
query = "SELECT ..."
results = MyModel.connection.execute(query, :skip_logging)
(Note: If I'm reading the sources correctly, this might not hold true in PostgreSQL.)
于 2014-02-12T01:53:36.003 に答える