has_and_belongs_to_manyで関連付けられた名前の添付ファイルとユーザーをモデル化する必要があります。今私はすべての添付ファイルが、関連付けを持つ添付ファイルが最初に表示され、次に関連付けられていない添付ファイルが表示されるようにソートされていることを確認する必要があります。これどうやってするの?habtmアソシエーションに応じてモデルの要素をソート
-1
A
答えて
0
これを行う簡単で効率的な方法は、Attachment
モデルにcounter cacheを追加することです。カウンタキャッシュは、attachments
テーブルの列に関連付けの数を格納して最新の状態に保つので、Attachment.order('user_attachments_count DESC')
を実行できます。
残念なことにHABTMはカウンタキャッシュをサポートしていないので、ジョインテーブルにアクセスするためには、他の2つの間に「ミドルマン」モデルをポップアップする必要があります。
(まだ貧弱な性能を備えた)もう一つの方法は、単に使用することです。それが収まらない場合
@attachments = Attachment.includes(:users)
@sorted = @attachments.sort_by {|r| r.to_a.size }.reverse!
をさて、あなたは常にSQLクエリ上で発汗を開始することができます...
関連する問題
- 1. jquery div要素の状態に応じてリストをソート
- 2. HABTMアソシエーションの属性別にモデルを照会
- 3. 要素に応じてArrayListをソートする
- 4. pythonは要素数に応じてリストをソートします
- 5. HABTMアソシエーションのフォーム作成
- 6. 前の要素に応じてレイジーシーケンス
- 7. 削除/追加要素に応じて
- 8. 子要素(小親要素内)を拡大(要素数に応じて)
- 9. レールHABTMモデル
- 10. アソシエーションをソートする
- 11. 次の要素のクラスに応じて要素を表示/非表示する
- 12. 必要に応じてhtml要素を定義する入力
- 13. モーダル要素を返し、必要に応じて開きます。
- 14. 必要に応じて配列に空の値をソートして追加する
- 15. は、モデル・アソシエーション・シナリオ
- 16. ブラウザのサイズに応じて要素を配置します。
- 17. ローカルストレージに応じて要素のスタイルを変更します
- 18. スクロール位置に応じてコンボボックスの動的要素を表示
- 19. プロパティに応じてDelegateModelGroupに要素を追加する方法
- 20. 値に応じてxxxx要素をバインドする
- 21. 入力要素に応じてDIVを配置する
- 22. クラス名に応じて要素をアニメ化する
- 23. クリックしたリンクに応じてHTML要素を表示
- 24. ソート要素が
- 25. CakePHP - あらかじめ定義されたモデルを持つHABTM
- 26. カントのソート配列のキーに応じ
- 27. Ruby on Railsのアソシエーションのタイプに応じた熱意
- 28. CakePHPモデル拡張アソシエーション
- 29. android - 必要に応じて各RecyclerView要素内のTextViewをスクロールする
- 30. Ruby on Rails HABTMアソシエーションは結合テーブルを更新しません
再フレーズあなたの質問。あなたが望むものは明確ではありません。 –