問題タブ [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 に答える
448 参照

ruby-on-rails - Rails 3 ActiveRecord クエリ: このユーザーが注文したこの製品の数を見つける

私はorderモデルbelongs_to :userproductモデル、結合モデルを持っていますorder_product:

order_productモデルには列がありquantityます。

pユーザーが注文した製品の数を確認するにはどうすればよいuですか? Rails 3 のアクティブ レコード クエリ構文を使用し、可能な限りデータベース レベルで行われるソリューションを見つけたいと思います。助けていただければ幸いです。

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

ruby-on-rails - SQLをArelに変換する方法は?

MATCHAGAINSTパーツをアレルに変換する方法はありますか?

Arelのソースコードには何も見つかりませんでした。

Rails3を使用しています。

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

ruby - ActiveRecord::QueryMethods でメソッドをオーバーライドする

教育的および実験的な理由から、ActiveRecord::QueryMethods の特定のメソッドをオーバーライドできるようにしたいと考えています。

例: User は、QueryMethod "order" を上書きするモジュールを含む ActiveRecord クラスです。

しかし、私は物事を機能させることができないようです。どのモジュールをオーバーライドする必要がありますか? ARel gem、AR::Relation、または AR::QueryMethods の何か?

0 投票する
3 に答える
6640 参照

ruby-on-rails - Rails/Arel: ActiveRecord::Relation としてすべてのレコードを選択する

Rails で Arel を使用する - をActiveRecord::Relation効果的に作成する方法を探していますがSELECT * FROM table、さらに操作することができます。

たとえば、複数のカテゴリに分割されたモデルがあり、次の方法でこれらのカウントを返します。

COUNTこれは問題なく動作し、実際にレコード自体を選択するのではなく、MySQL に対してクエリを実行できるという利点があります。

ただし、アーカイブされたレコードをカウントに含める必要がありますが、relation = Model.all結果は にArrayなり、探しているのはActiveRecord::Relationです。

これを実行する唯一の方法は です。これはmodel.where(model.arel_table[:id].not_eq(nil))機能しますが、少しばかげているように思えます。

誰でもこれに光を当てることができますか?

0 投票する
4 に答える
1852 参照

ruby-on-rails - Rails3HABTM条件=配列を使用したクエリの適切なフォーム

私は最初のHABTM関係を実装していましたが、クエリで問題が発生しました。

私は自分のアプローチを検証し、AREL(またはRailsの他の部分)コードにバグを見つけたかどうかを確認しようとしています。

私は次のモデルを持っています

関連するitems_regionsテーブルがあります。

私の目標は、スコープ/クエリを作成することです。

リージョン(およびそのサブリージョン)内のすべてのアイテムを検索する

祖先のgemは、Regionの子孫カテゴリを配列として取得する方法を提供します。この場合、

配列に要素が1つしかない場合、次のように機能します

生成されるSQLは

ただし、配列に複数の項目があり、INを使用しようとすると

生成されたSQLの最後にエラーがあります

生成されたコードの最後の部分は(region_id IN( "1,2,3,4"))である必要があります

SQLを手動で編集して実行すると、期待どおりの結果が得られます。

したがって、2つの質問:

  1. 単一値の場合の私のアプローチは正しいですか?
  2. SQL生成はバグですか、それとも正しく構成されていませんか?

ありがとうアラン

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

ruby-on-rails - ARELは何の略ですか?

ARELは何の略ですか?この頭字語の意味はどこにも見つかりませんでした。

0 投票する
5 に答える
9737 参照

ruby-on-rails-3 - 良いARELドキュメントはどこにありますか?

ARELについてできるだけ多くのことを学ぼうとしています。しかし、私は何を見るべきかわかりません。

rubydocに関するいくつかのドキュメントを見つけましたが、「パブリックAPI」/アクセス可能なことを示すという点ではあまり良くないようです。たとえば、「includes」メソッドに関する情報は見つかりませんでした。

では、ARELが提供するもののほとんどをどのように正確に学ぶのでしょうか?(つまり、ソースコードを詳しく調べずに)

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

ruby - Rails 3 NoMethodError:nil:NilClassの未定義のメソッド「名前」

使おうとするたびに

また

生産する

NoMethodError: nil:NilClass の未定義のメソッド `name'

私のテーブルモデルは

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

ruby-on-rails - 複数のデータベースを使用する場合のARELの使用方法は?

Table(* column_symbol *)を呼び出す場合、arelはメインデータベースを使用していると想定します。

クエリされたテーブルごとにARModelsを使用せずに、2番目のデータベースでarelテーブルを使用するにはどうすればよいですか?

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

ruby-on-rails - それをMetaWhereまたはArelに変換するにはどうすればよいですか?

次のような都市モデルを考えてみましょう。

フィールドが文字列であることを知っているその状況でArelまたはMetawhereを使用するには、次のようなものがあります。

"name" "residents.name" "state.name"

私はそのようなことをしたい(動作しません):

それで、あなたの考えは何ですか?

本当の問題は、どうすればそれを変換できるかということです。

"residents.name LIKE'#{value}%'"

それに:

:residents => {:name =〜 "#{value}%"}