問題タブ [arel]

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.

0 投票する
2 に答える
1678 参照

ruby - なぜSQLビルダーを使用するのですか?Arelv。Sequelv。T-SQL

オブジェクト指向ビルダーDSLを介してSQLを構築することと、生のSQL文字列をパラメーター化することの利点を理解しようとしています。同じクエリを3つの方法で調査/実装した後、生のSQLがはるかに読みやすいことに気付きました。これは、「なぜフープを飛び越えるのか」という疑問を投げかけます。生のSQLを宣言して使用しないのはなぜですか?

これが私が思いついたものです:

まず、アダプターを使用する任意のDBで使用できるため、SQLの移植性が向上すると思います。これが大物だと思いますよね?それでも、ほとんどのT-SQLはほとんどのデータベースで理解できませんか?

次に、他のクエリ、名前付きスコープのチェーンなどの基礎として再利用できるクエリオブジェクトを提供します。

SQLを宣言するのではなく構築することで実現する主な投資収益率はどれくらいですか?

名前付きスコープに心から感謝し、それらを連鎖させることがいかに有益であるかを理解しています。モデルを介して関連レコードにアクセスすることについては心配していません。私は純粋に複雑なクエリを構築することについて話している。

0 投票する
1 に答える
5745 参照

ruby-on-rails - アクティブなレコードで大文字と小文字を区別しない検索

Rails 3.0.4を使用しています

ここに私の Rails アプリケーションの Arel クエリの一部があります。upcase メソッドを使用して、データベースに依存しない方法で大文字と小文字を区別しない検索を行うにはどうすればよいですか?

ありがとう

0 投票する
6 に答える
27298 参照

ruby - Active Record を使用してデータが重複しているレコードを見つける方法

ruby と新しい Activerecord を使用して、列の値が重複しているレコードを見つける最良の方法は何ですか?

0 投票する
2 に答える
4942 参照

ruby-on-rails - arel /リレーショナル代数とhas_many:throughを使用して個別の値をフェッチする方法

人が出演しているすべての映画を表示しようとすると、映画の中で複数の役割(監督、作家、俳優)がいる場合、その映画には複数の行が表示されます。.select('DISTINCT id')またはmovies。*を追加して重複を排除しようとすると、次のエラーが発生します。

Mysql2 :: Error:SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルで、使用する正しい構文を確認してください。'DISTINCT id FROM moviesINNER JOIN movie_peopleON movies.id = movie_peop' at line 1: SELECTmovies .*, DISTINCT id FROMmovies INNER JOINmovie_people ONmovies .id =movie_people .movie_id WHERE ((movie_people`.person_id = 601619))ORDER BY title LIMIT 18 OFFSET 0

arelリクエストを正しくコーディングする方法がわかりません。助けてください。
ありがとうございました。

アプリ/コントローラー

アプリ/モデル

db / schema.rb

movies / show.html.erb

タイトル:華氏911
年:2004年
監督:マイケル・ムーア
脚本:マイケル・ムーア
キャスト:マイケル・ムーアジョージ・W・ブッシュ

people / show.html.erb

名前:Michael Moore
Fahrenheit 9/11(2004)
Fahrenheit 9/11(2004)
Fahrenheit 9/11(2004)

0 投票する
1 に答える
925 参照

ruby-on-rails - Rails 3: 1 つのクエリで has_many と belongs_to の関連付けを使用するクエリを注文する

私の Rails db スキームには、次の構造があります。

タスクには多くのジョブがあり、ジョブは 1 つのカテゴリに属しています

私が達成したいのは、すべてのタスクを、関連するすべてのジョブをカテゴリ順にロードすることです。したがって、結果は次のようになります。

タスク1 ジョブ1 -> カテゴリ1 ジョブ3 -> カテゴリ2 ジョブ2 -> カテゴリ3

タスク 3 ジョブ 5 -> カテゴリ 1 ジョブ 9 -> カテゴリ 2 ジョブ 4 -> カテゴリ 3

注: カテゴリの順序は ID ではなく、列です。

現時点で唯一有効な解決策は、SQL ではなく Ruby でジョブを注文することですが、これはかなり悪い方法です。has_many アソシエーションの :finder_sql オプションにつまずいたところですが、それが正しい方法かどうかはわかりません。

0 投票する
2 に答える
1392 参照

ruby-on-rails - Rails 3クエリまたはmeta_whereで「IS NOT TRUE」

私が必要とするのはおそらく非常に単純です:

Table.where('field is not true')

しかし、これがRails 3クエリインターフェースで、そしておそらくmeta_whereでどのように行われるかわかりません。問題は、「:field.not_eq => nil」は「IS NOT NULL」に正しく変換されますが、「:field.not_eq => true」は「!= 1」になり、「IS NOT TRUE」とは明らかに同じではありません。 " (mysql および postgresql 拡張機能)。

0 投票する
1 に答える
680 参照

ruby-on-rails-3 - Rails 3:サブモデルに特定の条件があるすべてのサブモデルを選択します

私のRailsdbスキームにはプロジェクトとタスクがあります。少なくとも1つの未解決のタスクがあるプロジェクトを表示したいと思います。これは私のコードです:

このコードは、1つの開いているタスクでプロジェクトを正しく返しますが、開いているタスクは1つだけで、すべてではありません。たとえば、プロジェクトに合計5つのタスクと2つの開いているタスクがある場合、上記のコードは2つのタスクを持つプロジェクトのみを返します。プロジェクトを強制的にリロードすることもできますが、これは非常にハックであり、パフォーマンスの問題があります。すべてのタスクでプロジェクトを取得するにはどうすればよいですか?

0 投票する
2 に答える
6662 参照

sql - 平均の平均を取得するために Arel でサブクエリを生成する

いくつかのテーブルがあるとしましょう

そして、マネージャーは多くの店舗を持ち、店舗には多くの注文があります。

ある日、マネージャーが働いている注文の平均合計を照会したいと考えています。ああ、それを店ごとにグループ化したい。明確にするために、マネージャーが勤務する店舗ごとに、マネージャーの平均注文合計を取得したいと思います。

そして、マネージャーを検索したとしましょう:

うん、それはうまくいきます。しかし、これらの平均の平均を求めるクエリを取得するにはどうすればよいでしょうか?

このクエリを取得するための Arel は何ですか?

誰か知ってる?

0 投票する
2 に答える
3353 参照

ruby-on-rails - アクティブなレコードでarelを使用したリレーションの数

私は、このクエリを実行する方法を理解するのに非常に苦労しています。

表面的には、Nik の例 (http://magicscalingsprinkles.wordpress.com/2010/01/28/why-i-wrote-arel/) のように見えます。

しかし、アクティブレコードを使用してレールで動作させることはできません。同等のものはこのようなものであるべきだと思いますが、エラーになります:(

それを行う方法についてのアイデアはありますか?