現在、Rails 4.0.0.beta1でActiveRecordを使用して生のSQL selectクエリを実行する方法はありますか? ActiveRecord :: Base.executeはもう存在しません。これについて正しい方法は何ですか?ここでRails 4、ActiveRecordを使用した生のクエリ
33
A
答えて
49
はこの選択の例を試してみてください..:あなたはスピードのためのカスタムクエリを行っている場合のRails 4で
query = "select ...."
results = ActiveRecord::Base.connection.execute(query)
10
(おそらく以前のバージョンと同様)、あなたはに:skip_logging
引数を追加することができますログへの書き込みを避ける:
query = "SELECT ..."
results = MyModel.connection.execute(query, :skip_logging)
(注:私は正しくソースを読んでいる場合は、これはPostgreSQLでは成り立たない可能性があります。)
26
ただ、生の私の10ペンスを追加しますModel.connection.executeを使用したクエリはActiveRecordモデルを返しません - 生データセットを返します。
以下はActiveRecordのモデルを返します。
MyModel.find_by_sql(query)
編集を:あなたが選択を実行しているもちろん仮定します。
関連する問題
- 1. ActiveRecord Rails 4チェーンの.selectクエリ
- 2. ActiveRecord生クエリを使用したJSONキャスト
- 3. Rails 4:ActiveRecordを使用した複数レベルの結合
- 4. Mysql 5.7 jsonのデータ型、Rails 5のactiverecordを使用したクエリ
- 5. Ruby on Rails結合を使用したActiveRecordクエリ
- 6. Rails ActiveRecordを使用したMySQL REGEXP
- 7. フィルタリングActiveRecordクエリインタフェースを使用して、Rails 4で検索
- 8. Rails&ActiveRecord:難しいSQLクエリ
- 9. Rails 4:別のスレッドのActiveRecordオブジェクトを使用する
- 10. Rails 3リファクタリングActiveRecordクエリ
- 11. ActiveRecordクエリに似たRailsイメージ操作...?
- 12. なぜActiveRecord :: Relationはarray_delegableを削除しましたか? Rails 5で? Railsの4、ActiveRecordので
- 13. Rails ActiveRecordファイルパラメータを使用して作成
- 14. Rails 4:ハッシュを使用したパラメータ
- 15. Rails 4 ActiveRecord時刻の照会
- 16. Rails ActiveRecordを使用したafcolumnの値を掛ける
- 17. ActiveRecordとSQLの生のクエリ
- 18. RailsのカスタムSQLクエリをActiveRecordモデルにマップ
- 19. ActiveRecord :: Serializerを使用したRailsスコープの問題
- 20. ActiveRecordのは、 `私はHerokuのでRailsの4.2を使用している生産
- 21. Rails 5 - Activerecordの関連付けクエリ
- 22. ActiveRecordはRails 3でSQLを生成しました
- 23. ORMLiteを使用したActiveRecord
- 24. SQLクエリは - Railsの4
- 25. Rails 4 - 親のネストされたリソースを使用したRansackの使用
- 26. Ruby Railsは私のモデルにActiveRecordクエリを挿入します
- 27. Rails 4 carrierwaveを使用した複数の画像のアップロード
- 28. ActiveRecordのSELECT CASE文をRailsモデルdefault_scopeとして使用する
- 29. Rails Activerecord Relation:サブクエリをSQLジョインのテーブルとして使用する
- 30. アセットパイプラインを使用したIF文Rails 4の構文
コントローラからこれを呼び出すとき、これは非推奨です。 # – Vortico
これは、コントローラーでデータベースに直接アクセスするのではなく、モデルをデータベースと対話させる必要があるからです。 – ant
@antトランザクションを開くか、接続を開くかどうかを指定する必要があります。カスタムSQLクエリの実行には十分でしょうか? [pastie example](http://pastie.org/10111824) – gaussblurinc