問題タブ [named-scopes]

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 に答える
1057 参照

ruby-on-rails - 乱雑なコントローラーの方が速いのに、なぜRailsスコープが望ましいのですか?

私は、コントローラーで作成した長蛇の列のロジックを使用するのではなく、スコープを使用してArelクエリをチェーンしようとしてきました。ただし、スコープは、すべてのレコードを取得して、ロジックを使用してそれらを選別するよりも低速です。では、なぜスコープが優れているのか疑問に思います。

これが私がしていることです:

  • 質問には多くの答えがあります
  • 答えは1つの質問に属します
  • 質問には、並べ替えに使用する「question_type」列があります

まず、スコープの方法...

質問.rb:

question_controller.rb:

次に、ビューで、これらのインスタンス変数(現在は最大10個の要素を含む配列)を循環し、結果を表示します。

ページの読み込みにかかる時間(5つの異なる時間)は次のとおりです。

535msで200OKを完了(ビュー:189.6ms | ActiveRecord:46.2ms)

573msで200OKを完了(ビュー:186.0ms | ActiveRecord:46.3ms)

577msで200OKを完了(ビュー:189.0ms | ActiveRecord:45.6ms)

532msで200OKを完了(ビュー:182.9ms | ActiveRecord:46.1ms)

577msで200OKを完了(ビュー:186.7ms | ActiveRecord:46.9ms)

さて、厄介なコントローラーの方法...

そして、これが今ページをロードするのにかかる時間です(5つの異なる時間):

475msで200OKを完了(ビュー:196.5ms | ActiveRecord:34.5ms)

480msで200OKを完了(ビュー:200.4ms | ActiveRecord:36.4ms)

434msで200OKを完了(ビュー:198.2ms | ActiveRecord:35.8ms)

475msで200OKを完了(ビュー:194.2ms | ActiveRecord:36.4ms)

475msで200OKを完了(ビュー:195.0ms | ActiveRecord:35.4ms)

それで...

読みやすさは別として、スコープでクエリを磨くことで何が得られるでしょうか?レコードが増えると、最終的には速くなりますか?

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

ruby-on-rails - Railsスコープとnamed_scope

スコープとnamed_scopeの間に違いはありますか?

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

yii - スコープが使用中かどうかを検出する yii

スコープが yii の AR 検索で使用されているかどうかを検出する方法があるかどうか疑問に思っていましたか?

たとえば、モデルには 2 つのスコープが含まれる場合があります。

私はARを次のように呼んでいます:

これは非常に動的なサイトであり、2 つ以上のスコープがあり、使用されているものと使用されていないものがあります。別のスコープが使用されている場合に適用すべきではないスコープがいくつかあります。何百ものステートメントを避けるために、次のif elseようにすることはできますか?

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

ruby-on-rails - Rails 3.2:ラムダスコープの連鎖?

Rails 3.2.8アプリには、状況によってはチェーンしたい名前付きスコープがいくつかあります。

したがって、たとえば、次の2つのスコープがあります。

私はそれらを別々に使用しますが、次のように一緒に呼び出すこともできるようにしたいと思います。

私が試してみると、in_date_rangeはArrayのメソッドではないと文句を言います。

しかし、私には別のスコープがあります、

そして私がそうするなら

できます!明らかに、アクティブスコープはリレーションを返しますが、ラムダスコープは配列を返すため、チェーンすることはできません。

単純なスコープとラムダスコープの違い、パラメーターがそれにどのように影響するか、そして私が行った結合スコープを作成する以外にできることがあるかどうかを知りたいです。

動作しますが、DRY(個々のスコープも必要なので)やRailsっぽくはありません。ここや他の場所を検索すると、同様の質問が表示されますが、パラメーターを使用して2つのラムダをチェーンしようとしているこの状況に当てはまると思われる質問はありません。

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

ruby-on-rails - 名前付きスコープに動的にアクセスする

次のような 3 つの名前付きスコープがある場合

そして関数

variable は文字列 ("test1"、"test2" または "test3") です。

その変数の値を知っているだけで、名前付きスコープにアクセスするにはどうすればよいですか?

何かのようなものFoo.variable

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

ruby-on-rails - validate_uniqueness_of はカスタム スコープで動作しますか?

私は RoR プロジェクトに取り組んでおり、カスタム スコープに対してチェックするモデルの 1 つで一意性を検証したいと考えています。

ただ、これはうまくいきません。存在しないアクティブな列についてデータベースをチェックし、次のエラーをスローします。

それで、私の質問はこれを機能させる方法はありますか、それともカスタムバリデーターを書く必要がありますか? もしそうなら、データベースへのアクセスが多すぎる場合のヒントはありますか?

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

ruby-on-rails - 複数の引数を持つ Rails スコープ

私の offer.rb モデルでは、これらのオファーを持っているクライアントの後にフィルタリングを行っています。しかし、スコープ内で別のパラメーターを渡して、たとえばクライアントの年齢などで検索できるようにしたいと考えています。

これが私のオファーモデルにあるものです:

ビューで:

このスコープで言うごとにクライアントの年齢を渡すにはどうすればよいですか?

ありがとう!

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

ruby-on-rails - Rails : has_many 関連付けのスコープ

Person と PersonInterest の 2 つのモデルがあります。 People には、人物に関するすべての情報が含まれています。 Person Interests には、人物の興味 (person_id、interest_id) が保存されます。

人 has_many PersonInterests

同じinterest_idを持つすべての人を検索できるスコープを作成するにはどうすればよいですか