0

アプリにトレンド機能を実装しようとしています。列を持つというテーブルSearchがありkeywordます。ユーザーが検索機能を使用するたびに、キーワードは行としてテーブルに格納されます。私が行ったのは、過去4時間の検索を実行し、キーワードでグループ化し、検索を6つのキーワードに制限し、キーワードの出現回数に基づいて並べ替えることです。現在、コントローラーでこのクエリを使用しています。

Search.where('created_at >= ?', 4.hours.ago).group(:keyword).order('count_keyword DESC').limit(6).count(:keyword)

同じクエリを名前付きスコープに変換してみましたが、次のようになりました。

scope :trending, lambda { where('created_at >= ?', 4.hours.ago).group(:keyword).order('count_keyword DESC').limit(6).count(:keyword) }

ここでの問題は、このエラーが発生することです。

ArgumentError:不明なキー:thesearchkeyword

名前付きスコープについてはよくわかりません。APIを読んでも、非常に単純な例しか提供されていないため、あまり役に立ちません。誰かが私を正しい方向に向けることができますか?

4

0 に答える 0