問題タブ [find-by-sql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - Rails 4、PostgreSQL: find_by_sql 集計関数の結果を OpenStruct に変換する
レポート/メトリクス ページで作業しており、クエリをできる限り最適化する必要があるため、効率のために find_by_sql を使用しています。
私のクエリの 1 つは、カウントといくつかの合計を返す集計関数を実行しています。このクエリの結果をモデルのインスタンス変数に割り当てています。
動作するコードがありますが、コードが怖いです。使用されているメソッドに関する Ruby/Rails の公式ドキュメントを読みましたが、それでも自分のやっていることに何か問題があると思います。
懸念
find_by_sql
配列を返すことになっています。一致するものが見つからない場合でも、SQL は常に行を返します (null 値ですが、有効な行)。.first
ただし、返された配列を呼び出すべきではない理由はありますか?[].first => nil
予想外の場合にぶつかるのが怖いです。- メソッドを使用して結果を「キャッシュ」する私の方法は
stats
、DB を 1 回だけクエリする適切な方法ですか? 集計データを取得するためだけに、多くのコードとメソッドが必要になるようです。
mysql - 変数を使用した Rails 動的 SQL: 未定義のメソッド find_by_SQL
複数のテーブルにまたがる複雑な SQL ステートメントがあります。このステートメントに変数を動的に渡し、データを JSON 形式で返したいと考えています。PHPMyAdmin でクエリが機能することをテストして確認し、リクエスト クラスの manSearch メソッド内に配置しました。現在、以下のクエリは単に次のように述べていますundefined method find_by_SQL
。私のバージョン 4.0.1 には fin_by_SQl が存在することをドキュメントから知っています。
どうすればこれを機能させることができますか?
mysql - Ruby on Rails .find_by_sql 引用符の問題
次の MySQL ステートメントで日付変数を使用すると問題が発生します。date 変数には、日付を表す文字列が含まれます。
以下は、データベースで実行された結果のクエリです。
日付文字列を囲む余分な引用符のセットが追加され、エラーが発生します。余分な引用符のペアを取り除く方法はありますか?
ruby-on-rails - アクティブ レコードの find_by_sql と rspec の予期ブロック。理由もなく新しい ID が作成される
Rails 4.2.1で複雑なSQLクエリに取り組んでいます
私のスキーマは(ジョブには_多くのタスクがあり、タスクには_多くのタイマーがあり、タイマーは外部キーの校正者_idを介してユーザー(ロール:校正者)に属しています)
問題は、メソッドを呼び出すと、正しいユーザーの電子メールと属性が返されますが、ID が一致しないことです。
たとえば、 User.proofreader_for_job(job) は戻ります
testemail@gmail.com は正しい電子メールですが、データベースに 178 の ID を持つユーザーがいません。
User.all を返すだけ
rspec テストでこの問題に気付きましたが、開発環境とテスト環境の両方で発生します。
なぜ私のメソッドがこのような高いIDを持つユーザーを返すのか、誰にも分かりますか? これは設計によるものですか?もしそうなら、それはなぜですか?
ありがとうございました。
php - Yii での findBySQL の結果
phpMyAdmin でクエリ"SELECT * FROM uzytownik"を実行すると、 uzytkownikテーブルからすべてのレコードが取得されます。しかし、yii コントローラーに適用されたこの同じクエリは、ほとんど 1 つの (最初の) レコードを提供します。なにが問題ですか?
出力: 1 月 1 日
WHERE 条件を使用したクエリでも 1 つのレコードが返されますが、3 つのレコードが返されるはずです。
出力: 1 Jakub
sql - rails ActiveModel は、永続化されていない属性を追加します
モデルテーブルをクエリしようとしています:
DB テーブルには、sender_id、recipient_id、is_read フィールドが含まれています。その結果、messages_count が存在しないハッシュの配列を取得しました。
私は自分で試しました
また、このようにget hashをオーバーライドしようとしました
これはトリガーされませんでした。
他に何を試すことができますか?ありがとう!