問題タブ [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 投票する
1 に答える
6282 参照

ruby-on-rails - :joins および :select を使用した default_scope

次の方法で default_scope を定義しようとしました。

私がRailsから得ているのはこれです:

これを named_scope として定義すると、すべて問題ありません。

これはバグであるはずですか、それとも正しい動作ですか?

Rails 2.3.4 を使用しています。

ありがとう!

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

ruby-on-rails - Railsはクラスメソッドを名前付きスコープに変換します

Rails初心者です。いくつかのクラス メソッドを named_scopes に取り込もうとしています。私のアプリケーション構造は、ユーザー コメントを含むブログ アプリケーションに似ています。各コメント モデルには、他のユーザーからの評価によって決定されるスコア属性があります。ユーザーが行った各コメントのすべてのスコアの合計から最大の合計スコアを持つ上位 10 人のユーザーを返す名前付きスコープを使用できるようにしたいと考えています。

合計スコアを取得するには、このメソッドを作成しました:

次に、トップ 10 のスコアをクラス メソッドとして取得するには、次のようにします。

同じ機能を名前付きスコープに入れようとしましたが、理解できないようです。

助言がありますか?

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

ruby-on-rails - Named scope not cooperating with timezone?

A really dodgy problem I've got. Here's my model:

Now if I do

It does not return posts unless i move published_at back one hour. BUT:

And it works fine!

I'm going nuts here, anyone has any ideas of where to even start debugging?

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

ruby-on-rails - Rspec、モデルの読み込み順序、フィクスチャ、named_scope チャレンジ

私には何人かのプレーヤーがいて、プレーヤーには取引状態があります。「アクティブ」や「非アクティブ」などの取引状態をハードコードしてから文字列を探しに行かなければならないのではなく、プレイヤーが trade_state_id (プレイヤーは一度に 1 つの取引状態)。

ここで、名前付きスコープを使用してから「Player.active」と言うと、すべてのアクティブなプレーヤーを取得できると便利です。そのためには、「アクティブ」に一致する TradeState レコードの ID を取得する必要があるため、Player クラスで次のように考えました。

これは、スクリプト/コンソールでテストすると魅力的に機能しますが、テストに行くと機能しません。私は RSpec を使用していますが、それは関係ないと思います。最も単純なテストを実行すると、次のエラーが発生します。

「誤って 4 になる nil の id と呼ばれる」

私の知る限り、テスト フレームワークはモデルをアルファベット順に読み込んで解析しています。フレームワークは Player モデルの named_scope 呼び出しを解析し、アクティブな最初の TradeState レコードの ID を忠実に検索します。ただし、そのモデルはまだ処理されておらず、準備ができていないため、nil の ID の取得に関するエラーが発生します。

最初は、trade_states テーブルにレコードがなかったのではないかと思ったので、before(:each) ブロックで必要な trade_states を作成して保存しましたが、うまくいきませんでした。それで、いくつかのフィクスチャを作成してロードしようとしましたが、うまくいきませんでした。

これはもっともらしいと思いますか?他の説明はありますか?回避策はどうですか?TradeState オブジェクトのモックを試すことができるので、やってみます。

お時間をいただき、誠にありがとうございました。

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

ruby-on-rails - "Section" has_many versioned "Articles"-どうすれば最新のサブセットを取得できますか?

Section多くの記事があると呼ばれるモデルがあります( Article)。これらの記事はバージョン管理されており(名前の列にはversionバージョン番号が格納されています)、最新のものを取得したいと思います。

section_id2からすべての記事を取得するSQLクエリは次のとおりです。

私は運が悪かったのですが、ArticleModelクラスで次のように見える名前付きスコープを作成しようとしてきました。

必要なバージョンをフェッチするための名前付きスコープは、次のように大きく機能しています。

find_by_sqlできる限りハイレベルに保つように努めているので、使用を終了したくありません。任意の提案や洞察を歓迎します。前もって感謝します!

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

ruby-on-rails - 名前付きスコープ vs. find_by_sql (具体例)

好奇心から、(find_by_sql ではなく) 名前付きスコープを使用して次のコレクションを構築するより良い方法を知っている人はいますか?

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

ruby-on-rails - Rails で *un*named スコープを作成できますか?

Railsで名前付きスコープを作成できることは知っています。これにより、後で構築できる条件を指定できます。

これは、後で評価されるまでプロキシ オブジェクトを作成することによって機能します。私が知りたいのは、動的な名前のないスコープを作成できるどうかです。

つまり、使用できるメソッド「foo」はありますか

そして、より多くの s やその他のスコープ付き呼び出しをscope実行できるプロキシ オブジェクトとして渡しますか?.find

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

sql - named_scopeは、最後のコメント日で投稿を並べ替えます

投稿has_manyコメント

名前付きスコープで並べ替えるsearchlogicを使用しています。そこで、各投稿の最新のコメント順に並べ替える名前付きスコープが欲しいのです。

:joinsを実行して最新のコメントのみを取得し、そのcreated_atフィールドですべてを並べ替える方法がわかりませんnamed_scope

私はmysql、fyiを使用しています。

編集:

これは私がエミュレートしようとしているSQLクエリです:

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

ruby-on-rails - RailsのNamed_scopeの一意のレコード?

named_scope特定の列に固有の戻りレコードを持つことは可能ですか?

例えば

これで3つのスタイルが得られますが、タイトルが異なることを確認したい場合はどうすればよいですか?この場合、同じスタイルのレコードが3つある可能性があるため、このnamed_scopeに一意のタイトルの値のみを指定する必要があります。

だから["style 1", "style 1", "style 1"]不可能です、それはそれ自身に与えることを強制します["style 1", "some style 2", "maybe another 3"]

  • groupはそれをするかもしれないと思います、そして私は今それを使っています。誰かがコメントを持っているなら、それは素晴らしいことです。
0 投票する
2 に答える
1681 参照

ruby-on-rails - named_scopeでブール結果を返す方法は?

結果はゼロです。真に戻してほしい。やらなきゃ!?

また、これを書くためのより良い方法はありますか?