Ein Memorandum wird aufgezeichnet, wenn einem Benutzer gefolgt wird, gefolgt von einem Follower, und in der Reihenfolge sortiert, in der er befolgt wird (absteigende Reihenfolge).
・ Ruby '2.5.7' ・ Schienen '5.2.3'
-Die User Follow-Funktion wurde bereits implementiert.
【Referenz】 Kapitel 14 Follow Users --Rails Tutorial
"Folgen Sie einem Benutzer (@ user``), sortieren Sie Follower ("@ users``) in der Reihenfolge, in der sie verfolgt wurden (absteigend) (" order ("ratios.created_at DESC") "
)"
Machen wir dies zu einem konkreten Code!
Definieren Sie folgende Aktionen und Follower-Aktionen in users_controller.
controllers/users_controller.rb
class UsersController < ApplicationController
(Kürzung)
def following
@title = "Folgen"
@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 = "Anhänger"
@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
(Kürzung)
end
Ich werde den Code der Reihe nach erklären! (Nur die folgende Aktion wird erklärt)
① Ersetzen Sie den in @ user = User.find (params [: id])
angezeigten Benutzer durch @ user
.
② Ersetzen Sie in get_follower_user_ids = Relationship.where (follower_id: @ user.id) .pluck (: follow_id)
die ID des Benutzers, dem @ user
folgt, in get_follower_user_ids
.
③ @users = User.includes (: passive_relationships) .where (id: get_follower_user_ids) .order ("Relationships.created_at DESC"). Paginate (Seite: params [: Seite])
`@ user`` Weisen Sie die Benutzer gefolgt von "@ Benutzer" zu.
Hier können Sie durch Festlegen von "include (: passive_relationships)" auf das Beziehungsmodell verweisen und nach "order" ("development.created_at DESC") "" sortieren.
Sie können jetzt die Follower, Follower und Follower eines Benutzers in absteigender Reihenfolge sortieren!
Recommended Posts