問題タブ [named-scope]

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

ruby-on-rails - アソシエーションのActiveRecord条件(Rails)

私がモデルを持っているふりをして、has_many:commentsを投稿します。コメントのある投稿のみを表示するにはどうすればよいですか?

私はnamed_scopeにある程度慣れていますが、シンボルを期待する:conditionsハッシュにPost.comments(またはself.comments)を配置する方法がわかりません。

コメント欄には何を書けばいいですか?

ありがとう!

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

ruby-on-rails - すべてのモデルでnamed_scopesおよびその他のActiveRecord関係を定義しようとしています

Rails アプリケーションのすべてのモデルに対して named_scope を定義しようとしています。

現在、ActiveRecord::Base の初期化子を作成し、そこに通常のメソッドを配置することで、これに近づくことができました。もちろん、クエリチェーンの作成に関しては、これは実際の利点を提供するものではなく、おそらくジョブを完了するための最もレールの少ない方法です。

しかし、has_many、named_scope などの ActiveRecord メソッドを試してみるとうまくいきません。

named_scope が正しくない可能性が高いことは理解していますが、named_scope を定義するための支援のみが必要です。また、現在、Ruby ACL GEM には興味がありません。

初期化子/:

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

ruby-on-rails - has_manyアソシエーションを持つレール内のnamed_scope

私は、コードに見苦しいSQLをたくさん含まずに、Railsの魔法を使用して、かなり複雑なクエリになると思うものを実現しようとしています。

私のデータベースはかなり特殊な生物医学モデルを扱っているので、以下をより現実的なシナリオに変換します。

私はモデルブックを持っています

has_many:chapters

とその章

所属する:book

たとえば、チャプターにはname属性があり、名前は序文、紹介、付録にすることができ、ブックには序文という名前のチャプターと紹介という名前のチャプターを含めることができますが、付録という名前のチャプターはありません。実際、これらの任意の組み合わせ

序文と紹介の両方の章があるすべての本を探しています。

現在、私は次のようにnamed_scopeを持っています

私が本と呼んだら。has_chapter?["序文"、 "紹介"]これにより、序文または紹介という名前の章があるすべての本が見つかります。両方の章の序文と紹介の両方を分離するのと同じようなことをどのように行うことができますか?

私はSQLにあまり詳しくないので、どのような種類の結合が必要であり、これが名前付きスコープで実現できるかどうかはよくわかりません。

どうもありがとう

アンソニー

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

ruby-on-rails - 名前付きスコープを持つActiveRecordを使用して複数のテーブルを結合します

レール用の名前付きスコープを作るのが大好きです。しかし、私はややピクルスに出くわしました。次のような結合に名前付きスコープを使用するのはかなり快適です。

ここで、barテーブルの外部キーを含むbazというテーブルがあると仮定します。私はこのようなものが必要です:

これはどのくらい可能ですか?

ありがとう

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

ruby-on-rails - Railsで名前付きスコープの代わりにSQLを使用する際の問題

モデルに「検索」メソッドがあり、渡されたさまざまなパラメーターに応じて、7 つのテーブルを結合する SQL クエリを実行します。しかし、このメソッドを別の名前付きスコープで使用すると、「配列の未定義のメソッド呼び出し」というエラーが表示されます。

しかし、この検索方法の代わりに名前付きスコープのグループを使用すると、正常に機能します。名前付きスコープをそのメソッドと統合する方法

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

ruby-on-rails - モデルインスタンスがrailsのnamed_scope内にあるかどうかを確認します

名前付きスコープがあると仮定します。

これはクエリに最適で、便利なnamed_scopesがたくさん定義されています。私が望んでいるのは、これを実行できるようにすることです。

バー?' モデルインスタンスが指定されたスコープ内にある場合、メソッドは単にtrueまたはfalseを返します。'is_bar'を記述せずにこれを行う方法はありますか?何かが「is_bar?」であるかどうかをチェックするための良い方法をすでに書いているにもかかわらず、メソッド 私が正しく覚えていれば、DRYは良いので、どんな助けでも大歓迎です/

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

ruby-on-rails - named_scope を使用した加算チェーン

スコープを加算的に結合する方法はありますか?

スコープがあれば

電話できる

そして、髪の毛が大きくてギターを弾くすべてのユーザーを獲得します。これを書いて、髪の毛が太い、またはギターを弾くすべてのユーザーを取得できますか?

一連のクエリを実行し、結果を一緒に追加できることを認識していることを付け加える必要があると思います。それが私がやらないようにしていることです。

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

ruby-on-rails - インデックス ページで複数の可能性のあるクエリ条件を処理する最良の方法

ユーザーが作成したドキュメントを保存するアプリケーションがあります。これらのドキュメントには、作成者と作成日があります。作成者はロールを持つことができます。さらに、特定のドキュメントがキーワードでタグ付けされる場合があります。データベースには最大 16,000 のドキュメントがあり、ユーザーは制限としてこの情報の任意の組み合わせでドキュメントを表示したい場合があります。たとえば、特定の作成者によるすべてのドキュメント、特定の時間枠で公開されたドキュメント、またはこの役割の作成者からのドキュメントなど (およびこれらの任意の組み合わせ) を表示します。

これを実装するための推奨される最良の方法はありますか? 一般に、params ハッシュで目的の条件を渡し、複雑な if ... elsif.... else.. を使用して、渡された条件を別の Model.find 呼び出しに直接デコードしました。または、同様の if シーケンスを使用して適切な SQL 条件句を作成し、単一の検索呼び出しを使用します。

これらは両方ともハックのように見え、名前付きスコープでそれを行うより良い方法があるはずですが、順列を処理するきれいな方法がわかりません。

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

ruby-on-rails - 複雑な named_scope: 特定のプロジェクトに属していないユーザーを見つける

のような名前付きスコープを作成しようとしてUser.not_in_project(project)いますが、正しい方法が見つかりません。

結合モデルとしてユーザー、プロジェクト、義務があります。

named_scopeこのfind句に似たものを試しました:

しかし、それは持っていないユーザーを返しませんがmy_project、以外のプロジェクトを持っているユーザーを返しますmy_project

つまり、名前付きスコープがこのメソッドとまったく同じように動作するようにします。

どうやってやるの?