-1

has_and_belongs_to_manyで関連付けられた名前の添付ファイルとユーザーをモデル化する必要があります。今私はすべての添付ファイルが、関連付けを持つ添付ファイルが最初に表示され、次に関連付けられていない添付ファイルが表示されるようにソートされていることを確認する必要があります。これどうやってするの?habtmアソシエーションに応じてモデルの要素をソート

+0

再フレーズあなたの質問。あなたが望むものは明確ではありません。 –

答えて

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クエリ上で発汗を開始することができます...

関連する問題