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. 要素に応じてArrayListをソートする
- 3. HABTMアソシエーションの属性別にモデルを照会
- 4. 前の要素に応じてレイジーシーケンス
- 5. HABTMアソシエーションのフォーム作成
- 6. アソシエーションをソートする
- 7. 値に応じてxxxx要素をバインドする
- 8. クラス名に応じて要素をアニメ化する
- 9. カントのソート配列のキーに応じ
- 10. は、モデル・アソシエーション・シナリオ
- 11. 他の要素に応じて要素のクリック機能を無効にするjquery
- 12. 必要に応じてFile/sを必要に応じてアップロードし、アップロード後に同じ列に表示
- 13. メモリロケーションに応じて2つのリンクリストをソート
- 14. ツリー内の別の要素の値に応じてXML要素の値を変更する
- 15. 要素の内容に応じて要素をターゲットにする方法はありますか?
- 16. CakePHP - あらかじめ定義されたモデルを持つHABTM
- 17. CakePHPモデル拡張アソシエーション
- 18. PHPの配列のインデックスに応じて配列のソート配列
- 19. ブラウザの位置に応じて要素の背景を変更する方法
- 20. 子要素の数に応じてページ幅の幅を設定する
- 21. リスト要素の長さに応じた並べ替えリストR
- 22. QListViewは、モデルのソート順に応じて異なるサイズのアイテムを表示します。
- 23. メーソンリーの位置に応じて新しい要素を入れる方法
- 24. Cakephp - コンテキストに応じてモデルを照会してください
- 25. ソート二つの要素
- 26. Groovy - XML要素のソート
- 27. ソート二つの要素
- 28. Ruby on Rails HABTMアソシエーションは結合テーブルを更新しません
- 29. Laravelピボットから余分なフィールドに応じてモデルをアタッチ/デタッチ
- 30. 子要素の状態に応じて親要素のスタイル要素を変更するにはどうすればよいですか?
再フレーズあなたの質問。あなたが望むものは明確ではありません。 –