Un mémorandum est enregistré lorsqu'un utilisateur est suivi, suivi d'un suiveur, et trié dans l'ordre d'être suivi (ordre décroissant).
・ Rubis '2.5.7' ・ Rails '5.2.3'
-La fonction de suivi utilisateur a déjà été implémentée.
【référence】 Chapitre 14 Follow Users - Rails Tutorial
"Suivre un utilisateur (" @ user), trier les abonnés (
@ users``) dans l'ordre dans lequel ils ont été suivis (décroissant) (ʻorder (" relations.created_at DESC ")
`)"
Faisons un code concret!
Définissez les actions suivantes et suiveuses dans users_controller.
controllers/users_controller.rb
class UsersController < ApplicationController
(réduction)
def following
@title = "Suivre"
@user = User.find(params[:id])
get_follower_user_ids = Relationship.where(follower_id: @user.id).pluck(:followed_id)
@users = User.includes(:passive_relationships).where(id: get_follower_user_ids).order("relationships.created_at DESC").paginate(page: params[:page])
render 'show_follow'
end
def followers
@title = "Disciple"
@user = User.find(params[:id])
get_followed_user_ids = Relationship.where(followed_id: @user.id).pluck(:follower_id)
@users = User.includes(:active_relationships).where(id: get_followed_user_ids).order("relationships.created_at DESC").paginate(page: params[:page])
render 'show_follow'
end
(réduction)
end
Je vais vous expliquer le code dans l'ordre! (Seule l'action suivante sera expliquée)
① Remplacez l'utilisateur affiché dans @ user = User.find (params [: id]) '' par
@ user``.
② Dans get_follower_user_ids = Relationship.where (follower_id: @ user.id) .pluck (: follow_id)
, remplacez l'id de l'utilisateur suivi de @ user '' par
get_follower_user_ids ''.
③ @users = User.includes (: passive_relationships) .where (id: get_follower_user_ids) .order ("Relationships.created_at DESC"). Paginate (page: params [: page])
@ user
Attribuez les utilisateurs suivis de `` @ users ''.
Ici, vous pouvez faire référence au modèle de relation en définissant ʻincludes (: passives_relationships)
, et vous pouvez trier par
ʻorder (" relation_created_at DESC ")
.
Vous pouvez désormais trier les abonnés, les abonnés et les abonnés par ordre décroissant!