配列を降順でソートしようとしましたが、うまくいきませんでした。
私は持っている...
microposts = Micropost.from_users_followed_by(self)
pub_messages = PubMessage.find_pub_messages_for(self.id)
(microposts + pub_messages).sort! { |a,b| a[:time_ago] <=> b[:time_ago] }
ただし、最後の行はすべてを昇順で返します。やっている
.reverse
それを修正しますが、そうするのはあまり効率的ではないと聞きました。やってみた
(microposts + pub_messages).sort! { |a,b| -a[:time_ago] <=> -b[:time_ago] }
しかし、-@が見つからないというエラーが発生します
私は試した
(microposts + pub_messages).sort! { |a,b| b[:time_ago] <=> a[:time_ago] }
しかし、それも変更されません(bとaを交換しました)。私は何を間違っていますか?それまでの間、メソッドを実行するとき
find_pub_messages_for and from_users_followed_by
私は次のようなことをします
default_scope order: 'pub_messages.created_at DESC'
default_scope order: 'microposts.created_at DESC'
私がそれらを取得するときの私のモデルで。しかし、それは無駄ですか?結局、行に見られるように、マイクロポストとpub_messagesの両方に基づいてそれらを再度ソートするからです
(microposts + pub_messages).sort! { |a,b| a[:time_ago] <=> b[:time_ago] }
本当にありがとう!